Comment récupérer les coins de la boîte englobante de ST_Extent?

16

Existe-t-il un moyen de récupérer le lat / long des coins de la boîte englobante que nous avons obtenu de ST_Extent?

select ST_Extent(geom) from tableName;
Vicky
la source

Réponses:

25

ST_Extent renvoie une boîte composée de xmin, ymin, xmax, ymax (coordonnées en bas à gauche, en haut à droite):

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

Pour récupérer le point correspondant en bas à gauche, vous pouvez créer un point composé de la coordonnée X en bas à gauche (st_xmin) et de la coordonnée Y en bas à gauche (st_ymin), par exemple:

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)

Notez que puisque st_extent renvoie une boîte englobante, il supprime le SRID de votre géométrie, vous pouvez donc l'ajouter à votre point nouvellement créé (j'utilise 900913 pour correspondre au SRID de mes données 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)
diciu
la source