簡體   English   中英

如何將 PostGIS 多邊形坐標轉換為 lat 和 lng?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM