Bagaimana cara menampilkan LAT / PANJANG poligon?
Aku punya meja dengan bidang GEOM (tipe: geometry
)
Saya ingin menampilkan nilai polygon
dalam 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_Y
hanya bekerja POINT
dan tidak POLYGON
.
Bagaimana cara menampilkan bidang geom (yang berisi poligon) dalam format lintang / bujur?
Jawaban
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