如何将 EPSG 坐标转换为纬度/经度?

Jas*_*els 3 geolocation node.js opengis epsg

我有以下 OpenGis 数据,我想将其转换为纬度/经度坐标(如 Google 地图所使用)。

\n\n
<address xmlns:gml="http://www.opengis.net/gml">\n  <gml:Point srsName="urn:ogc:def:crs:EPSG::28992">\n    <gml:pos>142629.0 523546.0</gml:pos>\n  </gml:Point>\n</address>\n
Run Code Online (Sandbox Code Playgroud)\n\n

EPSG注册表中,我找到了EPSG的起始位置:28992。

\n\n
Latitude of natural origin      52\xc2\xb009\'22.178"N\nLongitude of natural origin     5\xc2\xb023\'15.5"E\nScale factor at natural origin  0.9999079 unity\nFalse easting                   155000 metre\nFalse northing                  463000 metre\n
Run Code Online (Sandbox Code Playgroud)\n\n

我尝试过使用proj4js,但我不知道如何将其放入投影中以及如何获得所需的输出。

\n\n

我也尝试过自己计算一下。但我不知道我在这里做什么,也没有什么真正有意义的:(。

\n

Dav*_*ard 6

以下是具体操作方法。通常,如果 Proj4js 已经包含投影,您可以从一种投影转换为另一种投影,如下所示:

proj4('EPSG:900913', 'EPSG:4326', [20.0, 30.0]);
Run Code Online (Sandbox Code Playgroud)

但是,EPSG:28992 未包含在标准库中。为此,您可以通过添加新定义来添加它:

proj4.defs(
   "EPSG:28992", 
   "+proj=sterea +lat_0=52.15616055555555   +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000  +ellps=bessel  +towgs84=565.040,49.910,465.840,-0.40939,0.35971,-1.86849,4.0772 +units=m +no_defs"
);
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样转换:

proj4('EPSG:28992', 'EPSG:4326', [142629.0, 523546.0]);
Run Code Online (Sandbox Code Playgroud)

哪个产量

[5.2041980699764325, 52.69918555556015]
Run Code Online (Sandbox Code Playgroud)

在谷歌地图上