我正在尝试获取经纬度坐标的Openlayers地图的当前中心。我有以下事件处理程序设置:
this.map.on('pointermove', function (e) {
if (e.dragging) {
console.log(that.map.getView().getCenter());
}
});
Run Code Online (Sandbox Code Playgroud)
这行得通,但我得到了奇怪的价值观。这是一个例子:
[9318218.659044644, 3274618.6225819485]
Run Code Online (Sandbox Code Playgroud)
这些显然不是纬度/经度值:)我需要以某种方式进行转换吗?谢谢!
我对openlayers并不超级熟悉,但是听起来地图在不同的投影中。
检查以下关于spherical_mercator,transform, Open Layers投影的信息
更新
我已经做了更多的研究,请查看此示例。不确定您的视图在什么投影中。如果您进入js控制台并输入map.getView().getCenter()您要获取的内容[693230.7161150641, 179010.3389264635],则本示例中的地图位于“ EPSG:21781”中,但如果输入ol.proj.transform(map.getView().getCenter(), 'EPSG:21781', 'EPSG:4326'),则[8.658936030357363, 46.75575224283748]希望有所帮助。