[英]How to convert PostGIS polygon coords into lat and lng?
從 json API 中,我正在獲取顯示為多邊形的區域的數據。 可以在此處找到端點示例:
這是我從中獲取數據的平台上顯示的多邊形的預覽:
下面是包含多邊形坐標的元素片段。
"the_geom": {
"coordinates": [
[
[
543271.0,
6213477.0
],
[
543553.0,
6213471.0
],
[
543556.0,
6213013.0
],
[
543287.0,
6213008.0
],
[
543271.0,
6213477.0
]
]
],
"type": "Polygon"
},
"the_geom2": {
"coordinates": [
543416.1695806364,
6213244.042039478
],
"type": "Point"
},
我想在網站上的嵌入式 Google Map 中顯示多邊形。 我目前正在使用 PHP 將坐標導入內容管理系統。
問題是,據我所知,“the_geom”元素的坐標是來自 PostGIS 數據庫的坐標。
我想將坐標轉換為緯度和經度,以便在 Google Map 上顯示。
那可能嗎? 如果是 - 過程會是什么?
通常,當幾何不包含任何有關 SRS 的信息時,我們可以假設它是EPSG:4326
(又名 WGS84),顯然不是這樣。 另外,如果我沒記錯的話,GeoJSON 幾何圖形只打算編碼為 WGS84 。 所以,我敢說這個 API 沒有提供正確的信息。
話雖如此,如果您有權訪問 PostgreSQL,請考慮在 UPDATE 語句中使用ST_Transform
將幾何轉換為您想要的 SRS,或者在查詢時轉換它們。
考慮到您的幾何圖形的 SRS 是EPSG:23032
(ED50 / UTM zone 32N)
SELECT ST_AsGeoJSON(ST_Transform(the_geom),4326)) As wkt;
這將為您提供以下結果(考慮到您的 GeoJSON 幾何)..
{
"type": "Polygon",
"coordinates": [
[
[
9.69359591513313,
56.0626693979362
],
[
9.6981234775552,
56.062589963491
],
[
9.69809730445666,
56.0584749528625
],
[
9.69377718993567,
56.0584543863193
],
[
9.69359591513313,
56.0626693979362
]
]
]
}
..並對應於..
我對谷歌地圖不是很熟悉,但如果它只需要EPSG:4326
幾何,你需要在傳遞 GeoJSON 幾何之前對其進行轉換(例如使用 JavaScript)。 如果 Google 地圖足夠靈活以接受不同的 SRS,請確保您明確 state 幾何 SRS - 在這種情況下很可能是EPSG:23032
。
祝你好運!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.