node.js - 如何将 EPSG 坐标转换为纬度/经度?

标签 node.js geolocation epsg opengis

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

<address xmlns:gml="http://www.opengis.net/gml">
  <gml:Point srsName="urn:ogc:def:crs:EPSG::28992">
    <gml:pos>142629.0 523546.0</gml:pos>
  </gml:Point>
</address>

关于EPSG Registry ,我找到了EPSG的原点位置:28992。

Latitude of natural origin      52°09'22.178"N
Longitude of natural origin     5°23'15.5"E
Scale factor at natural origin  0.9999079 unity
False easting                   155000 metre
False northing                  463000 metre

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

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

最佳答案

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

proj4('EPSG:900913', 'EPSG:4326', [20.0, 30.0]);

但是,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"
);

然后你可以像这样转换:

proj4('EPSG:28992', 'EPSG:4326', [142629.0, 523546.0]);

哪个产量

[5.2041980699764325, 52.69918555556015]

On Google Maps

关于node.js - 如何将 EPSG 坐标转换为纬度/经度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216694/

相关文章:

javascript - Q.all 没有以正确的顺序解析

node.js - 使用在 Firestore 模拟器上运行的 Firebase-Admin 时找不到 Firestore 文档

javascript - 将无符号整数转换为字符串,其字节是整数的 256 位 (BE) 表示形式?

elasticsearch - elasticsearch地理距离过滤器,但距离在文档上而不是在查询中

方形区域的 Android GPS

javascript - 当我发送 res.send(body) 时,我在 body 中变得不确定

geolocation - 最佳 IP 国家数据库

javascript - OpenLayers: map 无法使用非 'standard' EPSG 代码进行渲染

python - Geopandas to_crs 转换后给出错误的坐标

javascript - Proj4Leaflet 在 Leaflet 中从 4326 转换为 3857