问题
当我点击 Map 时,我想将坐标转换为4326格式 . 当我这样做时,数组的Latitude部分似乎转换得很好,但经度部分不正确且无效 .
代码
当我点击Map,SingleClick事件触发时,我会得到用户点击的坐标:
Example of pPointClicked = [-40364190.03366159, 7054830.416117247];
session.Map.on('singleclick', function (e) {
var pPointClicked = e.coordinate;
});
我尝试使用下面的代码将这些坐标转换为4326:
Example of 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 ,这是不正确的?有谁知道为什么会这样 .
1 回答
转型似乎有效 . 这就是我认为正在发生的事情:你不在 Map 的“原始范围”内,即你向西平移并将整个世界包裹至少两次 .
尝试完全缩小,然后在“相同”位置向东平移两次,然后再次单击 . 你应该有你正在寻找的坐标 .
这是另一个提示:世界范围,在
EPSG:3857
中,是:[-40364190.03366159, 7054830.416117247]
超出了这个范围,但是如果你平移两次世界,你应该得到:289173.348083102, 7054830.416117247]
,这是在范围内 .