我是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);
但这是一个完全不同的位置。我错过了什么?
答案 0 :(得分:4)
Google Maps和OSM显示完全相同的位置。其他一切都很奇怪。
但是你混合 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
函数来获取目标参考。