2017-02-14 635 views
0

我有以下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

這是一個批處理作業,每月運行一次。數據如何使用不是由我確定或知道的。數據應該只包含經度/緯度座標。 –

回答

1

下面是如何做它。通常情況下,你可以只從一個投影到另一個轉換,如果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

0

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。 –

相關問題