Come visualizzare LAT / LONG del poligono?

Aug 19 2020

Ho una tabella con il campo geom (tipo: geometry)

Voglio visualizzare i valori di polygonin lat / long.

Come posso farlo ?

Ho visto questo post:

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

ma le funzioni ST_X, funziona ST_Ysolo su POINTe non su POLYGON.

Come posso visualizzare il campo geom (che contiene poligono) in formato lat / long?

Risposte

3 RubenHelsloot Aug 19 2020 at 17:15

A seconda dell'output che desideri, potrebbe benissimo essere che ST_ASGEOJSON fa già tutto ciò che desideri, ma altrimenti puoi usare ST_DUMPPOINTS per ottenere tutti i singoli punti del poligono.

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

restituirebbe elenchi ordinati di latitudini e longitudini per poligono. Se vuoi combinarli, usa 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