阅读:1601回复:2
在地图上怎么得到一点相对于另一点的方位?
比如东南,西南 或者以西以北等信息。刚开始接触GIS,多谢帮忙!
|
|
1楼#
发布于: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> |
|
2楼#
发布于:2004-03-28 15:51
这个问题的学术名称叫:坐标方位角的计算
呵呵 |
|