当我点击地图时,我想将坐标转换为 4326 的格式。当我这样做时,似乎数组的Latitude部分变换正常,但经度部分不正确且无效。
当我点击地图时, SingleClick 事件会触发,然后我会获取用户点击的位置坐标:
pPointClicked示例= [-40364190.03366159,7054830.416117247];
session.Map.on('singleclick', function (e) {
var pPointClicked = e.coordinate;
});
我尝试使用以下代码将这些坐标转换为 4326 :
coord4326的示例= [-362.59768838343064,53.38659640004323];
session.Map.on('singleclick', function (e) {
var pPointClicked = e.coordinate;
var coord4326 = ol.proj.transform(pPointClicked, 'EPSG:3857', 'EPSG:4326');
});
正如您所看到的,转换变量中的第一个值是 -362.59768838343064 ,这是不正确的?有谁知道为什么会这样。
答案 0 :(得分:1)
转型似乎有效。这就是我认为正在发生的事情:你不在地图的“原始范围”内,即你向西平移并将整个世界包裹至少两次。
尝试完全缩小,然后在“相同”位置向东平移两次,然后再次单击。你应该有你正在寻找的坐标。
以下是另一个提示:EPSG:3857
中的世界范围是:
[
-20037508.342789244,
-20037508.342789244,
20037508.342789244,
20037508.342789244
]
[-40364190.03366159, 7054830.416117247]
超出了这个范围,但是如果你平移两次世界,你应该得到:289173.348083102, 7054830.416117247]
,这是在范围内。