Existe-t-il un moyen simple d'obtenir le cadre de sélection pour une table entière dans PostGIS?
19
Comme @underdark a répondu , ST_Extent fera le travail, mais gardez à l'esprit qu'il ne renvoie pas une géométrie mais un box2d
. Si vous avez besoin d'un type de géométrie, vous devez utiliser quelque chose comme
SELECT ST_SetSRID(ST_Extent(the_geom), THE_SRID) as table_extent FROM your_table;
De plus, si ce dont vous avez besoin est d'obtenir la boîte englobante de chacune des lignes que vous pouvez également utiliser ST_Extent
et un faux GROUP BY
comme celui-ci:
SELECT ST_SetSRID(ST_Extent(the_geom),THE_SRID) as table_extent FROM your_table GROUP BY gid;
En supposant que gid est la clé primaire de la table
Mais ST_Envelope fera un meilleur travail comme @ bugmenot123 l'a déclaré dans les commentaires
SELECT ST_Envelope(geom) FROM your_table ;
ST_Envelope
! Ce n'est pas ce qui a été demandé.Une autre possibilité consiste à utiliser la
ST_Envelope
fonction, qui renvoie une géométrie avec SRID,, ainsi que la fonction d'agrégation
ST_Union
pour obtenir l'union de toutes les géométries (ou l'union de leurs enveloppes respectives) comme suit:ou
La deuxième option devrait être plus rapide car elle simplifie l'opération d'union en utilisant les enveloppes des géométries individuelles.
voir Source .
la source
Ne pas appliquer d'agrégation spatiale devrait être beaucoup plus rapide:
la source