首页 文章

使用OSM和EPSG:4326使用openlayers增加近90度的纬度 . 为什么?

提问于
浏览
1

我正在使用openLayers并创建一个OSM基础层 . 默认情况下,图层使用EPSG:900913,坐标以米为单位 . 我想在EPSG中使用度数坐标:4326所以我用以下内容初始化图层:

base_layer.addOptions({ sphericalMercator: true, 
    projection: new OpenLayers.Projection('EPSG:4326')}, true);

现在 Map 使用度数,但有下一个问题:我在lat中看到纬度为37.296且经度为-5.929(http://www.openstreetmap.org/?lat=37.296&lon=-5.929&zoom=12&layers=Q#且Google Map 中的坐标相同)的点(移动 Map 并在firebug中执行 map.getCenter() ) . -49.75,lon . -5.929 .

为什么?如何使用具有与 openstreetmap.org 中相同度数坐标的OSM图层以及 nominatim.openstreetmap.org 返回的OSM图层?

1 回答

  • 2

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

    我不清楚你要在这里做什么,说实话,但是将 displayProjection 设置为 EPSG:4326 可能会有所帮助,这会导致OpenLayers在向用户传递值或从用户传递值时使用度 .

    如果要在代码中读取或设置 Map 位置,则需要重新投影从 getCenter 获得的值,或者通过在位置值上调用 transform 方法来自行提供给 setCenter .

相关问题