Come recuperare gli angoli del rettangolo di selezione da ST_Extent?


16

C'è un modo per recuperare il lat / long degli angoli del rettangolo di selezione che abbiamo ottenuto da ST_Extent?

select ST_Extent(geom) from tableName;

Risposte:


25

ST_Extent restituisce una casella composta da xmin, ymin, xmax, ymax (coordinate in basso a sinistra, in alto a destra):

osm=# select st_extent(way) from planet_osm_point;
                            st_extent                                
-------------------------------------------------------------------------
 BOX(2259828.73261444 5412478.55751597,3301031.7673783 6147766.43413396)

Per recuperare il punto corrispondente alla parte inferiore sinistra, è possibile creare un punto composto dalla coordinata X inferiore sinistra (st_xmin) e dalla coordinata Y inferiore sinistra (st_ymin), ad es .:

osm=# select st_astext(st_makepoint(st_xmin(st_extent(way)), st_ymin(st_extent(way)))) 
      from planet_osm_point;
            st_astext                 
------------------------------------------
 POINT(2259828.73261444 5412478.55751597)

Nota che poiché st_extent restituisce un rettangolo di selezione, rimuove lo SRID dalla geometria, quindi potresti volerlo aggiungere al punto appena creato (sto usando 900913 per abbinare lo SRID dei miei dati OSM):

osm=# select st_asewkt(st_setsrid(st_makepoint(st_xmin(st_extent(way)), st_ymin(st_extent(way))), 900913)) 
      from planet_osm_point;
            st_astext                 
------------------------------------------
 SRID=900913;POINT(2259828.73261444 5412478.55751597)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.