LAT / LONG of polygon nasıl görüntülenir?

Aug 19 2020

Ben geom alan içeren bir tablo var (tip: geometry)

polygonEnlem / 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_Yyalnızca çalışır POINTve üzerinde çalışmaz POLYGON.

Geom alanını (poligon içeren) enlem / boylam formatında nasıl görüntüleyebilirim?

Yanıtlar

3 RubenHelsloot Aug 19 2020 at 17:15

İ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