关于地图坐标到屏幕坐标的转换

来源:互联网 发布:数据库审计系统哪个好 编辑:程序博客网 时间:2024/05/23 16:35

今天终于将多点画到屏幕上去了,十分开心,这里面最重要的是坐标系的转换.我讲讲坐标系的转换:

功能说明: 窗口坐标与地图坐标的转换

使用说明:

设置坐标转换的比例尺SetZoom以后,设置地图中心SetMapCenter和窗口中心SetWndCenter以后

Map2Wnd:地图坐标转换为窗口坐标

Wnd2Map:窗口坐标转换为地图坐标

原理:在二维坐标系统中的两个坐标系通过一对对应点和一个缩放因子即可确定两者的对应关系。

算法:确定地图坐标中的一点m_ptMapCenter和对应于窗口坐标中的一点m_ptWndCenter,从地图坐标到窗口坐标的系数Scale

地图坐标(mx, my)到窗口坐标(wx, wy)的转换方法为:

wx=( mx-m_ptMapCenter.x)* Scale+m_ptWndCenter.x

wy=( my-m_ptMapCenter.y)* Scale+m_ptWndCenter.y

在这里我想说明一下 m_ptMapCenter:  大家都知道shapefile有边界盒为Xmin, Ymin,Xmax,Ymin  我想说 m_ptMapCenter:的x= ( Xmax+Xmin)/2

y=(Ymax+Ymin)/2 

至于 Scale=(Xmax-Xmin)/(手机屏幕的宽度/2).

其实这个地图的原点与屏幕中心是重叠的,这个比值是个缩放因子,如果你想放大缩小地图 ,那么只要改变缩放因子即可.

 
原创粉丝点击