地图坐标与屏幕坐标的转换

地图坐标与屏幕坐标的转换
2008-10-01 23:23

 

陈玉进 李泉 

 

再开始这个话题之前,先提出一个问题:给你一副地图,里面的每个要素的坐标都已知,怎么把这幅地图在屏幕上显示出来?由此就引出了地图坐标与屏幕坐标的转换,它是GIS底层实现中调用频率最高的运算,地图渲染、浏览、要素选择、编辑等都会涉及到它,这个算法的实现效率,直接关系到整个系统的性能。

 

现在回答文章开头提到那个问题。首先,已知当前显示的地图范围是多少,即HW、(x0,y0)已知;然后,已知当前屏幕画布的大小,即已知H’W’;这样就可以得到地图坐标(x,y) 到屏幕坐标(x’,y’) 转换公式,把每个要素的地图坐标都转换到屏幕坐标,并被渲染出来。

在画布大小没有改变的情况下(H’W’不变),随着地图的放大、缩小、平移等操作,地图范围在不断地改变,即HW、(x0,y0)在改变,转换公式的也随之改变。

我们又经常要把屏幕坐标转成地图坐标,比如,我们在地图上添加一个点要素,需要在屏幕上按一下鼠标,确定这个点的位置,这个时候就需要把当前鼠标按下的位置即屏幕坐标,通过上面的公式,转换成地图坐标保存。再比如,点选工具,也是先在地图上按一下鼠标来选择,把鼠标按下的位置,即屏幕坐标转成地图坐标,然后用地图坐标查询空间索引,缩小搜索的范围,比较距离当前鼠标位置最近的要素,即为被选择的要素。

总之,地图坐标与屏幕坐标的转换,是GIS中最常调用的接口,不管是底层开发还是二次开发,都会经常涉及到。下一节,我们将重点介绍控制地图显示的几个重要参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值