OpenLayers:4326 ol.proj.transform 不工作
OpenLayers : 4326 ol.proj.transform not working
问题
当我点击地图时,我想将坐标转换为 4326 的格式。当我这样做时,数组的纬度部分似乎转换得很好,但经度部分不正确且无效。
代码
当我点击地图时,SingleClick 事件触发,然后我得到用户点击位置的坐标:
pPointClicked 示例 = [-40364190.03366159, 7054830.416117247];
session.Map.on('singleclick', function (e) {
var pPointClicked = e.coordinate;
});
我尝试使用以下代码将这些坐标转换为 4326:
坐标示例 4326 = [-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,这是不正确的?有谁知道为什么会这样。
转型似乎奏效了。这是我认为正在发生的事情:您不在地图的 "original extent" 范围内,即您向西平移并至少包裹了整个世界两次。
尝试完全缩小,然后在 "same" 位置向东平移两次,然后再次单击。你应该有你要找的坐标。
这是另一个提示:EPSG:3857
中的世界范围是:
[
-20037508.342789244,
-20037508.342789244,
20037508.342789244,
20037508.342789244
]
[-40364190.03366159, 7054830.416117247]
超出了那个范围,但是如果你平移包裹世界两次,你应该得到:289173.348083102, 7054830.416117247]
,在范围内。
问题
当我点击地图时,我想将坐标转换为 4326 的格式。当我这样做时,数组的纬度部分似乎转换得很好,但经度部分不正确且无效。
代码
当我点击地图时,SingleClick 事件触发,然后我得到用户点击位置的坐标:
pPointClicked 示例 = [-40364190.03366159, 7054830.416117247];
session.Map.on('singleclick', function (e) {
var pPointClicked = e.coordinate;
});
我尝试使用以下代码将这些坐标转换为 4326:
坐标示例 4326 = [-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,这是不正确的?有谁知道为什么会这样。
转型似乎奏效了。这是我认为正在发生的事情:您不在地图的 "original extent" 范围内,即您向西平移并至少包裹了整个世界两次。
尝试完全缩小,然后在 "same" 位置向东平移两次,然后再次单击。你应该有你要找的坐标。
这是另一个提示:EPSG:3857
中的世界范围是:
[
-20037508.342789244,
-20037508.342789244,
20037508.342789244,
20037508.342789244
]
[-40364190.03366159, 7054830.416117247]
超出了那个范围,但是如果你平移包裹世界两次,你应该得到:289173.348083102, 7054830.416117247]
,在范围内。