Name

ST_Expand — Gibt einen Begrenzungsrahmen zurück, der aus einem anderen Begrenzungsrahmen oder einer Geometrie erweitert wurde.

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);

Beschreibung

Gibt einen Begrenzungsrahmen zurück, der aus dem Begrenzungsrahmen der Eingabe expandiert wurde, indem entweder ein einzelner Abstand angegeben wird, mit dem der Rahmen auf beiden Achsen expandiert werden soll, oder indem ein Expansionsabstand für jede Achse angegeben wird. Verwendet Doppelpräzision. Kann für Abstandsabfragen verwendet werden oder um einen Bounding-Box-Filter zu einer Abfrage hinzuzufügen, um einen räumlichen Index zu nutzen.

Zusätzlich zu der Version von ST_Expand, die eine Geometrie akzeptiert und zurückgibt, werden Varianten bereitgestellt, die die Datentypen box2d und box3d akzeptieren und zurückgeben.

Die Entfernungen sind in den Einheiten des räumlichen Bezugssystems der Eingabe angegeben.

ST_Expand ist ähnlich wie ST_Buffer, mit dem Unterschied, dass ST_Expand das Begrenzungsrechteck entlang jeder Achse erweitert, während Pufferung eine Geometrie in alle Richtungen erweitert.

[Note]

Vor Version 1.3 wurde ST_Expand in Verbindung mit ST_Distance verwendet, um indizierbare Abstandsabfragen durchzuführen. Zum Beispiel: geom && ST_Expand('POINT(10 20)', 10) AND ST_Distance(geom, 'POINT(10 20)') < 10. Diese Funktion wurde durch die einfachere und effizientere Funktion ST_DWithin ersetzt.

Verfügbarkeit: 1.5.0 Verhalten geändert, um double precision statt float4 Koordinaten auszugeben.

Erweiterung: Mit 2.0.0 wurde die Unterstützung für polyedrische Oberflächen, Dreiecke und TIN eingeführt.

Verbessert: In Version 2.3.0 wurde die Möglichkeit hinzugefügt, eine Box um unterschiedliche Beträge in verschiedenen Dimensionen zu erweitern.

Diese Funktion unterstützt polyedrische Flächen.

Diese Funktion unterstützt Dreiecke und dreieckige unregelmäßige Netzoberflächen (TIN).

Beispiele

[Note]

Die folgenden Beispiele verwenden den US National Atlas Equal Area (SRID=2163), der eine Meterprojektion ist

--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))