使用OSM和EPSG:带有开放层的4326增加了近90度的纬度。为什么?

时间:2013-02-14 18:15:59

标签: coordinates openlayers openstreetmap

我正在使用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图层?

1 个答案:

答案 0 :(得分:2)

当您正在显示的图块实际呈现在EPSG:4326中时,您不能仅声明该图层为EPSG:3857。这是荒谬的。

我不清楚你要在这里做些什么来说实话,但将displayProjection设置为EPSG:4326可能会有所帮助,这会导致OpenLayers在传达价值时使用度往/来自用户。

如果您想在代码中阅读或设置地图位置,则需要重新投放从getCenter获得的值,或通过调用setCenter方法自行提供给transform关于位置值。