Name

ST_Expand — Renvoie une boîte de délimitation développée à partir d'une autre boîte de délimitation ou d'une géométrie.

Synopsis

geometry ST_Expand(geometry geom, float units_to_expand);

geometry ST_Expand(geometry geom, float dx, float dy, float dz=0, float dm=0);

box2d ST_Expand(box2d box, float units_to_expand);

box2d ST_Expand(box2d box, float dx, float dy);

box3d ST_Expand(box3d box, float units_to_expand);

box3d ST_Expand(box3d box, float dx, float dy, float dz=0);

Description

Renvoie une boîte de délimitation développée à partir de la boîte de délimitation de l'entrée, soit en spécifiant une distance unique avec laquelle la boîte doit être développée sur les deux axes, soit en spécifiant une distance de développement pour chaque axe. Utilise la double précision. Peut être utilisé pour les requêtes de distance, ou pour ajouter un filtre de boîte de délimitation à une requête afin de tirer parti d'un index spatial.

Outre la version de ST_Expand acceptant et renvoyant une géométrie, des variantes sont fournies qui acceptent et renvoient des types de données box2d et box3d.

Les distances sont exprimées dans les unités du système de référence spatiale de l'entrée.

ST_Expand est similaire à ST_Buffer, mais alors que la mise en mémoire tampon étend une géométrie dans toutes les directions, ST_Expand étend la boîte de délimitation le long de chaque axe.

[Note]

Avant la version 1.3, ST_Expand était utilisé en conjonction avec ST_Distance pour effectuer des requêtes de distance indexables. Par exemple, geom && ST_Expand('POINT(10 20)', 10) AND ST_Distance(geom, 'POINT(10 20)') < 10. Cette fonction a été remplacée par la fonction ST_DWithin, plus simple et plus efficace.

Disponibilité : 1.5.0 comportement modifié pour afficher les coordonnées en double précision au lieu des coordonnées float4.

Amélioration : 2.0.0 introduction du support TIN, Triangles et surfaces polyédriques.

Amélioration : 2.3.0 : prise en charge de l'expansion d'une boîte par différentes quantités dans différentes dimensions.

Cette fonction prend en charge les surfaces Polyhedral.

Cette fonction prend en charge les triangles et les réseaux irréguliers triangulés (TIN).

Exemples

[Note]

Les exemples ci-dessous utilisent l'Atlas national américain Equal Area (SRID=2163) qui est une projection en mètres.

--10 meter expanded box around bbox of a linestring
SELECT CAST(ST_Expand(ST_GeomFromText('LINESTRING(2312980 110676,2312923 110701,2312892 110714)', 2163),10) As box2d);
                                         st_expand
------------------------------------
 BOX(2312882 110666,2312990 110724)

--10 meter expanded 3D box of a 3D box
SELECT ST_Expand(CAST('BOX3D(778783 2951741 1,794875 2970042.61545891 10)' As box3d),10)
                                                          st_expand
-----------------------------------------------------
 BOX3D(778773 2951731 -9,794885 2970052.61545891 20)

 --10 meter geometry astext rep of a expand box around a point geometry
 SELECT ST_AsEWKT(ST_Expand(ST_GeomFromEWKT('SRID=2163;POINT(2312980 110676)'),10));
                                                                                        st_asewkt
-------------------------------------------------------------------------------------------------
 SRID=2163;POLYGON((2312970 110666,2312970 110686,2312990 110686,2312990 110666,2312970 110666))

                

Voir aussi

ST_Buffer, ST_DWithin, ST_SRID