我正在使用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 Maps中的相同坐标)(移动地图并在firebug中执行map.getCenter()
)。-49.75,长-5.929。
为什么?如何使用与openstreetmap.org
中和nominatim.openstreetmap.org
返回的度数坐标相同的OSM图层
发布于 2013-02-15 09:19:23
当您正在显示的tiles实际上是在EPSG:3857
中呈现的时候,您不能仅仅声称该层是EPSG:4326
。这简直是胡说八道。
老实说,我不太清楚您在这里试图做什么,但将displayProjection
设置为EPSG:4326
可能会有所帮助,这将导致OpenLayers在与用户传送值时使用度数。
如果要在代码中读取或设置地图位置,则需要重新投影从getCenter
获得的值,或者通过调用位置值上的transform
方法自己提供给setCenter
。
https://stackoverflow.com/questions/14881387
复制