1

我正在使用 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#和相同的坐标谷歌地图)在我看来(移动地图并map.getCenter()在萤火虫中执行)在纬度。-49.75,朗。-5.929。

为什么?如何使用具有与 inopenstreetmap.org和 as 返回的相同度数坐标的 OSM 层nominatim.openstreetmap.org

4

1 回答 1

2

您不能只声称该图层是EPSG:4326您正在显示的图块实际呈现在EPSG:3857. 那是荒谬的。

老实说,我不太清楚你在这里要做什么,但它可能有助于设置displayProjection哪个EPSG:4326将导致 OpenLayers 在与用户交流价值时使用度数。

如果您想在代码中读取或设置地图位置,则需要通过调用位置值的方法来重新投影您从中获得getCenter或给自己的值。setCentertransform

于 2013-02-15T09:19:23.170 回答