LAT / LONG of polygon nasıl görüntülenir?
Ben geom alan içeren bir tablo var (tip: geometry
)
polygon
Enlem / boylam cinsinden değerlerini görüntülemek istiyorum .
Nasıl yapabilirim ?
Bu gönderiyi gördüm:
https://gis.stackexchange.com/questions/95373/convert-geometry-to-latitude-longitude-using-postgis-st-transform/95376
ancak işlevler ST_X
, ST_Y
yalnızca çalışır POINT
ve üzerinde çalışmaz POLYGON
.
Geom alanını (poligon içeren) enlem / boylam formatında nasıl görüntüleyebilirim?
Yanıtlar
İstediğiniz çıktıya bağlı olarak, ST_ASGEOJSON zaten istediğiniz her şeyi yapıyor olabilir, ancak aksi takdirde, çokgenin tüm bireysel noktalarını elde etmek için ST_DUMPPOINTS kullanabilirsiniz .
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
çokgen başına sıralı enlem ve boylam listeleri döndürecektir. Birleştirmek istiyorsanız, JSON kullanın :
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