- 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 - distanceein 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. 
- LineStrings 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))) |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+