- Kategorien:
ST_BUFFER¶
Gibt ein GEOMETRY-Objekt zurück, das ein MultiPolygon repräsentiert, das die Punkte innerhalb einer angegebenen Entfernung vom GEOMETRY-Eingabeobjekt enthält. Das zurückgegebene Objekt repräsentiert im Endeffekt einen „Puffer“ um das Eingabeobjekt.
Sie können das Eingabeobjekt auch „schrumpfen“, indem Sie einen negativen Wert für die Entfernung angeben.
Syntax¶
ST_BUFFER( <geometry_expression> , <distance> )
Argumente¶
geometry_expression
Das Argument muss ein Ausdruck vom Typ GEOMETRY sein.
distance
Die Entfernung vom GEOMETRY-Objekt. Um das Objekt zu „schrumpfen“, können Sie einen negativen Wert für die Entfernung angeben.
Die Einheiten hängen vom Spatial Reference System Identifier (SRID) des GEOMETRY-Objekts ab. Zum Beispiel sind ESPG: 4326-Einheiten Grad, während ESPG: 25855-Einheiten Meter sind.
Rückgabewerte¶
Gibt ein GEOMETRY-Objekt zurück.
Nutzungshinweise¶
SRIDs basieren auf dem EPSG-Standard (v10.082). Beispielsweise entspricht die SRID 4326 der „Authority EPSG“ mit dem Code 4326.
ST_BUFFER verwendet acht Segmente, um sich einem Viertelkreis anzunähern.
Wenn
distance
ein negativer Wert ist, ist das zurückgegebene Objekt kleiner als das Eingabeobjekt. Damit können Sie kleine Unregelmäßigkeiten aus der Form entfernen.Bei LineStrings sind die Endkappen- und Verbindungsstile immer rund.
LineStings werden immer beidseitig gepuffert.
Beispiele¶
Bevor Sie die Beispiele ausführen, setzen Sie den Parameter GEOMETRY_OUTPUT_FORMAT auf WKT
:
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
Das folgende Beispiel gibt ein Polygon um einen Punkt mit einem Radius von 1 zurück:
SELECT ST_BUFFER(TO_GEOMETRY('POINT(0 0)'), 1) AS geom;
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GEOM |
|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| MULTIPOLYGON(((1 0,0.9807852804 -0.195090322,0.9238795325 -0.3826834324,0.8314696123 -0.555570233,0.7071067812 -0.7071067812,0.555570233 -0.8314696123,0.3826834324 -0.9238795325,0.195090322 -0.9807852804,6.123233996e-17 -1,-0.195090322 -0.9807852804,-0.3826834324 -0.9238795325,-0.555570233 -0.8314696123,-0.7071067812 -0.7071067812,-0.8314696123 -0.555570233,-0.9238795325 -0.3826834324,-0.9807852804 -0.195090322,-1 7.657137398e-16,-0.9807852804 0.195090322,-0.9238795325 0.3826834324,-0.8314696123 0.555570233,-0.7071067812 0.7071067812,-0.555570233 0.8314696123,-0.3826834324 0.9238795325,-0.195090322 0.9807852804,2.480838239e-15 1,0.195090322 0.9807852804,0.3826834324 0.9238795325,0.555570233 0.8314696123,0.7071067812 0.7071067812,0.8314696123 0.555570233,0.9238795325 0.3826834324,0.9807852804 0.195090322,1 0))) |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
Im folgenden Beispiel wird ein negativer Wert für distance
verwendet, um kleine Unregelmäßigkeiten (z. B. Zacken) aus der Form zu entfernen. Der Aufruf TO_GEOMETRY übergibt TRUE als zweites Argument, wodurch die Funktion ein GEOMETRY-Objekt für eine ungültige Form erstellen kann.
SELECT ST_BUFFER(TO_GEOMETRY('SRID=2261;POLYGON((
1540792.21541900 290472.63529214, 1547018.61770388 302537.02285369,
1546965.96550151 302752.51514772, 1547018.61770388 302537.02285369,
1549532.42729914 301257.07398027, 1543327.42218339 289322.60923536,
1540792.21541900 290472.63529214))', True), -1e-08) AS geom;
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| GEOM |
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| MULTIPOLYGON(((1543327.42218339 289322.609235373,1540792.21541901 290472.635292145,1547018.61770388 302537.022853677,1549532.42729913 301257.073980266,1543327.42218339 289322.609235373))) |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+