我的地图使用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/)?
答案 0 :(得分:3)
我相对确定您的源投影(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纬度。 因为接近时,墨卡托投影会伸展到无限远 两极,需要南北方向的截止,这个 特定的截止值导致投影仪表的完美平方。