Bagaimana cara menampilkan LAT / PANJANG poligon?

Aug 19 2020

Aku punya meja dengan bidang GEOM (tipe: geometry)

Saya ingin menampilkan nilai polygondalam lintang / bujur.

Bagaimana saya bisa melakukannya?

Saya melihat posting ini:

https://gis.stackexchange.com/questions/95373/convert-geometry-to-latitude-longitude-using-postgis-st-transform/95376

tapi fungsinya ST_X, ST_Yhanya bekerja POINTdan tidak POLYGON.

Bagaimana cara menampilkan bidang geom (yang berisi poligon) dalam format lintang / bujur?

Jawaban

3 RubenHelsloot Aug 19 2020 at 17:15

Bergantung pada keluaran yang Anda inginkan, mungkin saja ST_ASGEOJSON sudah melakukan semua yang Anda inginkan, tetapi sebaliknya, Anda dapat menggunakan ST_DUMPPOINTS untuk mendapatkan semua titik individu poligon.

SELECT polygon.id,
       ( SELECT ARRAY_AGG(ST_Y(geom ORDER BY path))
         FROM ST_DUMPPOINTS(polygon) AS points ) as latitudes,
       ( SELECT ARRAY_AGG(ST_X(geom ORDER BY path))
         FROM ST_DUMPPOINTS(polygon) AS points ) as longitudes
FROM polygons

akan mengembalikan daftar garis lintang dan bujur per poligon. Jika Anda ingin menggabungkan, gunakan JSON :

SELECT polygon.id,
       ( SELECT ARRAY_AGG(
             JSON_BUILD_OBJECT(
                 'latitude', ST_Y(geom),
                 'longitude', ST_X(geom)
             ) ORDER BY path)
         )
         FROM ST_DUMPPOINTS(polygon) AS points )
FROM polygons