Openlayers 3.6:获取当前地图视图的中心

时间:2015-07-10 19:09:57

标签: openlayers-3

我正在尝试以纬度/经度坐标获取Openlayers地图的当前中心。我有以下事件处理程序设置:

this.map.on('pointermove', function (e) {
    if (e.dragging) {
        console.log(that.map.getView().getCenter());
    }
});

这有效,但我得到了奇怪的价值观。这是一个例子:

[9318218.659044644, 3274618.6225819485]

那些显然不是lat / lon值:)我需要以某种方式改变它吗?谢谢!

3 个答案:

答案 0 :(得分:5)

我不熟悉openlayers,但听起来地图是在不同的投影中。

spherical_mercatortransform上查看以下内容, Open Layers projections

<强>已更新
我做了一点研究,看看这个example。不确定您的观看次数是什么。此示例中的地图位于&#39;&#39; EPSG:21781&#39;如果你去一个js控制台并输入map.getView().getCenter(),你会得到[693230.7161150641, 179010.3389264635],但是如果你输入ol.proj.transform(map.getView().getCenter(), 'EPSG:21781', 'EPSG:4326'),你会得到[8.658936030357363, 46.75575224283748]希望有所帮助。

答案 1 :(得分:1)

OpenLayers 6的更新(假设您的地图被称为“地图”),下面给出了地图视图中心的[lon,lat]数组。

ol.proj.toLonLat( map.getView().getCenter() )

答案 2 :(得分:1)

对于那些使用 angular 的人。
另外,我会考虑搜索地图的投影,而不是手动输入。

import * as olProj from 'ol/proj'
import Map from 'ol/Map'

// ...

olProj.transform(
    this.map.getView().getCenter(),
    this.map.getView().getProjection(),
    'EPSG:4326',
)