¿Hay una manera fácil de obtener el cuadro delimitador para una tabla completa en PostGIS?
19
Como respondió @underdark , ST_Extent hará el trabajo, pero tenga en cuenta que no devuelve una geometría sino a box2d
. Si necesita un tipo de geometría, debe usar algo como
SELECT ST_SetSRID(ST_Extent(the_geom), THE_SRID) as table_extent FROM your_table;
Además, si lo que necesita es obtener el cuadro delimitador de cada una de las filas que también puede usar ST_Extent
y un falso GROUP BY
como este:
SELECT ST_SetSRID(ST_Extent(the_geom),THE_SRID) as table_extent FROM your_table GROUP BY gid;
Suponiendo que gid es la clave principal de la tabla
Pero ST_Envelope hará un mejor trabajo como @ bugmenot123 declaró en los comentarios
SELECT ST_Envelope(geom) FROM your_table ;
ST_Envelope
! Sin embargo, eso no fue lo que se pidió.Otra posibilidad es usar la
ST_Envelope
función, que devuelve una geometría con SRID,, junto con la función de agregado
ST_Union
para obtener la unión de todas las geometrías (o la unión de sus respectivas envolventes) de la siguiente manera:o
La segunda opción debería ser más rápida, ya que simplifica la operación de unión mediante el uso de envolventes de geometrías individuales.
ver Fuente .
fuente
No aplicar ninguna agregación espacial debería ser mucho más rápido:
fuente