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

问题描述:

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

<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,但我无法弄清楚如何把这个投影以及如何获得所需的输出。

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

+0

一几个问题:这是一次性的批处理作业,还是您会收到新的数据,您必须立即更新?此外,这是用于在网络地图上显示,还是输出格式?如果它是一个网络地图,你有一个特定的网络地图库,你已经使用? –

+0

这是一个批处理作业,每月运行一次。数据如何使用不是由我确定或知道的。数据应该只包含经度/纬度坐标。 –

下面是如何做它。通常情况下,你可以只从一个投影到另一个转换,如果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

proj4js是一个有用的库,用于转换不同的系统在不同的输出! 您也可以尝试采取转换在线工具,如CS2S

例如,你可以尝试让阿贾克斯形式像这样的请求:

https://mygeodata.cloud/drive/crslist?dsid=0&search=28992&limit=50&offset=0 

,并取回一个JSON:

{"rows": [{"proj4": "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.9999079 +x_0=155000 +y_0=463000 +ellps=bessel +towgs84=565.4171,50.3319,465.5524,-0.398957388243134,0.343987817378283,-1.87740163998045,4.0725 +units=m +no_defs ", "sel": 2, "epsg": 28992, "dsname": "Amersfoort/RD New", "aoi": "Netherlands - onshore, including Waddenzee, Dutch Wadden Islands and 12-mile offshore coastal zone.", "ordering2": 460.0}], "total": 1} 

和检查,在proj4键,您lat_0lon_0

这些值的格式,如谷歌的坐标,也许更容易把在投影

+0

我必须转换成千上万的坐标。使用外部服务不是一种选择。你能否请直接展示如何使用proj4。 –