我正在使用openLayers并创建一个OSM基础层。默认情况下,图层使用EPSG:900913,坐标以米为单位。我想在EPSG中使用度数坐标:4326所以我用:
初始化图层base_layer.addOptions({ sphericalMercator: true,
projection: new OpenLayers.Projection('EPSG:4326')}, true);
现在地图使用度数但有下一个问题:我看到纬度为37.296且经度为-5.929(http://www.openstreetmap.org/?lat=37.296&lon=-5.929&zoom=12&layers=Q#且Google地图中的坐标相同的点)(移动地图并执行map.getCenter()
在篝火)在拉特。 -49.75,lon。 -5.929
为什么呢?如何使用与openstreetmap.org
中具有相同度坐标的OSM图层以及nominatim.openstreetmap.org
返回的OSM图层?
答案 0 :(得分:2)
当您正在显示的图块实际呈现在EPSG:4326
中时,您不能仅声明该图层为EPSG:3857
。这是荒谬的。
我不清楚你要在这里做些什么来说实话,但将displayProjection
设置为EPSG:4326
可能会有所帮助,这会导致OpenLayers在传达价值时使用度往/来自用户。
如果您想在代码中阅读或设置地图位置,则需要重新投放从getCenter
获得的值,或通过调用setCenter
方法自行提供给transform
关于位置值。