OpenLayers地图坐标转换屏幕坐标
最近因工作原因开始接触OpenLayers地图,遇到需要将地图坐标转换成屏幕坐标,因为技术有限,在大量查看API、与大神写的文章时候还是有写地方疏忽了,先将整个地图坐标转换地图坐标进行记录。
第一步为指定的代码获取投影对象。
ol.proj.get(‘EPSG:4326′)
在得到投影对象后需要取到投影有效范围,get接口为ol.proj.Projection下有getExtent方法获取投影有效性范围。
ol.proj.get(‘EPSG:4326’).getExtent()
第二步
获取地图的宽度范围,ol.extent.getWidth(ol.proj.get(‘EPSG:4326’).getExtent());到这里基本操作结束。
接下来就是
//地图坐标转屏幕坐标: screenPt.x=screen.center.x+ ((mapPt.x-mapExtent.center.x)/resolution+0.5); screenPt.y=screen.center.y- (mapPt.y-mapExtent.center.y)/resolution+0.5);
在这个公式中screen是屏幕坐标,mapPt是地图坐标,mapExtent是地图中心坐标,resolution
就是地图宽度范围,这个公式网上搜索到的,经测试无误。只是这里偏移了0.5。本人不喜欢写记录,但只因这个问题困扰我一天,希望对迷茫的朋友有一点帮助。谢谢,也希望朋友们提出我的缺点,加以改正。
转载自:https://blog.csdn.net/cong517yang/article/details/72972035