- Catégories :
ST_BUFFER¶
Renvoie un objet GEOMETRY qui représente un MultiPolygon contenant les points situés à une distance spécifiée de l’objet GEOMETRY d’entrée. L’objet renvoyé représente effectivement un « tampon » autour de l’objet d’entrée.
Vous pouvez également « rétrécir » l’objet d’entrée en spécifiant une valeur négative pour la distance.
Syntaxe¶
ST_BUFFER( <geometry_expression> , <distance> )
Arguments¶
- geometry_expression
- L’argument doit être une expression de type GEOMETRY. 
- distance
- La distance de l’objet GEOMETRY. Pour « rétrécir » l’objet, vous pouvez spécifier une valeur négative pour la distance. - Les unités dépendent de l’identificateur du système de référence spatiale (SRID) de l’objet GEOMETRY. Par exemple, ESPG : 4326 sont des degrés, tandis que ESPG : 25855 sont des mètres. 
Renvoie¶
Renvoie un objet GEOMETRY.
Notes sur l’utilisation¶
- Les SRIDs sont basés sur la norme EPSG (v10.082). Par exemple, le SRID 4326 correspond à l’autorité EPSG avec le code 4326. 
- ST_BUFFER utilise huit segments pour obtenir une approximation d’un quart de cercle. 
- Si - distanceest une valeur négative, l’objet renvoyé est plus petit que l’objet d’entrée. Vous pouvez l’utiliser pour supprimer les petites irrégularités de la forme.
- Pour LineStrings, les styles de terminaison et de jointure sont toujours ronds. 
- LineStrings sont toujours tamponnés des deux côtés. 
Exemples¶
Avant d’exécuter les exemples, définissez le paramètre GEOMETRY_OUTPUT_FORMAT sur WKT.
ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
L’exemple suivant renvoie un polygone autour d’un point avec un rayon de un :
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))) |
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
L’exemple suivant utilise une valeur négative pour distance pour supprimer les petites irrégularités (telles que les pointes) de la forme. L’appel TO_GEOMETRY passe dans TRUE comme deuxième argument, ce qui permet à la fonction de créer un objet GEOMETRY pour une forme non valide.
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))) |
+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+