如何转换"正常"坐标到OpenLayers中的OSM坐标

时间:2014-05-09 14:56:07

标签: javascript openlayers openstreetmap

我是OpenLayers的新手,并且已经遇到了我的第一个问题。我正试图转换"正常"坐标,我从谷歌地图复制到OSM的坐标,将我的地图集中到某个区域。 现在,据我所知,正常情况是"正常"坐标系EPSG:4326,OSM一个是EPSG:3857或EPSG:900913,这是相同的。所以我的Javascript代码是:

map.setCenter(new OpenLayers.LonLat(53.537460, 9.953227).transform(new OpenLayers.Projection("EPSG:4326"), new OpenLayers.Projection("EPSG:3857")), 5);

但这是一个完全不同的位置。我错过了什么?

2 个答案:

答案 0 :(得分:4)

Google MapsOSM显示完全相同的位置。其他一切都很奇怪。

但是你混合 lat lon OpenLayers.LonLat()接受第一个 lon ,然后 lat ,因为名称已经告诉您。但是你首先传递 lat 然后 lon ,这将导致一个完全不同的位置。

答案 1 :(得分:2)

您在Steinwerder(汉堡港)或非洲之角的位置?我假设第一个是纬度北纬53度,西经9度。

这应该将您的地图设置在正确的位置。

map.setCenter(new OpenLayers.LonLat(9.953227,53.537460).transform('EPSG:4326', map.getProjectionObject()), 5);

您只需要知道输入坐标参考并使用getProjectObject函数来获取目标参考。