如何转换“正常”"坐标转换为OpenLayers中的OSM坐标

How to convert "normal" coordinates to OSM coordinates in OpenLayers

本文关键字:坐标 转换 quot OSM OpenLayers 中的 何转换 正常      更新时间:2023-09-26

我对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);

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

Google Maps和OSM显示完全相同的位置。其他都是奇数

但是你把latlon弄混了。OpenLayers.LonLat()首先接受lon,然后接受 lar ,正如名称已经告诉您的那样。但是你先传递lat,然后再传递lon,这当然会导致完全不同的位置

您的位置是在施泰因维尔德(汉堡港)还是非洲之角?我假设是第一个,所以纬度是北纬53度,经度是西经9度。

这将把你的地图放在正确的位置。

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

您只需要知道输入的坐标参考,并使用getProjectObject函数获得目标参考