【问题标题】:OpenLayers LonLat transformations are not within correct projection boundsOpenLayers LonLat 变换不在正确的投影范围内
【发布时间】:2014-05-14 10:26:01
【问题描述】:
我的地图使用 EPSG:900013 投影。结果,在获取鼠标位置时,我得到了 -20037508.342789244 到 20037508.342789244 范围内的米值。
我使用了 LonLat 类的 .transform() 方法,使用 EPSG:900913 作为源投影,并且(不假思索地)使用 EPSG:4329 作为目标投影。
我的问题是,为什么 EPSG:4329 给我的范围是 -180、180、-80.05、85.05(我想要)而不是 -180、180、-90、90(它应该给我,因为这些是正确的界限http://spatialreference.org/ref/epsg/wgs-84/)?
【问题讨论】:
标签:
javascript
google-maps
openlayers
gis
【解决方案1】:
我相对确定您的源投影 (900913) 正在设置这些约束,因此当您移动鼠标时,您只能从 0,0 移动这么多米,这对应于 85.05 和 -80.05在你的转变中。
换句话说,EPSG 900913 并不覆盖整个地球。因此,当您将鼠标分别移动到最北/最南时,它不会转换为 +/- 90,而是转换为 85.05 和 -80.05,正如您所发现的那样。
如果你去查看this page in the OpenLayers docs,他们解释如下:
具体来说,大多数球形墨卡托地图使用世界范围
从 -180 到 180 经度,从 -85.0511 到 85.0511 纬度。
因为当你接近时,墨卡托投影会延伸到无穷远
两极,需要在南北方向上截断,这
特定的截止值会产生一个完美的正方形投影米。