Come visualizzare LAT / LONG del poligono?
Ho una tabella con il campo geom (tipo: geometry
)
Voglio visualizzare i valori di polygon
in 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_Y
solo su POINT
e non su POLYGON
.
Come posso visualizzare il campo geom (che contiene poligono) in formato lat / long?
Risposte
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