bianguowei
路人甲
路人甲
  • 注册日期2004-02-06
  • 发帖数51
  • QQ
  • 铜币280枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1598回复:2

在地图上怎么得到一点相对于另一点的方位?

楼主#
更多 发布于:2004-03-23 15:32
比如东南,西南 或者以西以北等信息。刚开始接触GIS,多谢帮忙!
喜欢0 评分0
gis1117
  • 注册日期
  • 发帖数
  • QQ
  • 铜币
  • 威望
  • 贡献值
  • 银元
1楼#
发布于:2004-03-23 18:47
通过坐标计算来获得也行啊
举报 回复(0) 喜欢(0)     评分
jxfzcgh
外卖仔
外卖仔
  • 注册日期2003-07-26
  • 发帖数69
  • QQ
  • 铜币452枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-03-28 15:51
这个问题的学术名称叫:坐标方位角的计算
呵呵
举报 回复(0) 喜欢(0)     评分
bianguowei
路人甲
路人甲
  • 注册日期2004-02-06
  • 发帖数51
  • QQ
  • 铜币280枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-05-19 11:17
<P>不知是否还有更好的方法?</P><P>CString CGisTranslateDlg::GetDirection(CMoPoint ;mapPt, CMoPoint ;objPt)
{
 // 求方位
 CString strDir;
 double x = objPt.GetX() - mapPt.GetX();
 double y = objPt.GetY() - mapPt.GetY();
 double angle = atan(y/x)*(180/3.1415926);
 
 if( x >= 0 ;; y >= 0 )
 {
  if ( angle < 15 )
   strDir = "以东";
  else if ( angle > 15 ;; angle < 75 )
   strDir = "东北";
  else
   strDir = "以北";
 }
 else if ( x <= 0 ;; y >= 0 )
 {
  if ( angle < -75  )
   strDir = "以北";
  else if ( angle > -75 ;; angle < -15 )
   strDir = "西北";
  else
   strDir = "以西";
 }
 else if ( x <= 0 ;; y <= 0 )
 {
  if ( angle < 15 )
   strDir = "以西";
  else if ( angle > 15  ;; angle < 75 )
   strDir = "西南";
  else
   strDir = "以南";
  
 }
 else if ( x >= 0 ;; y <= 0 )
 {
  if ( angle < -75 )
   strDir = "以南";
  else if ( angle > -75  ;; angle < -15 )
   strDir = "东南";
  else
   strDir = "以东";
 }
 return strDir;
}
</P>
举报 回复(0) 喜欢(0)     评分
游客

返回顶部