- Catégories :
ST_PERIMETER¶
Renvoie la longueur du périmètre du ou des polygones dans un objet GEOGRAPHY ou GEOMETRY.
Syntaxe¶
ST_PERIMETER( <geography_or_geometry_expression> )
Arguments¶
geography_or_geometry_expression
L’argument doit être de type GEOGRAPHY ou GEOMETRY.
Renvoie¶
Renvoie une valeur REAL, qui représente la longueur :
Pour les objets GEOGRAPHY, la longueur est en mètres.
Pour les objets GEOMETRY, la longueur est calculée avec la même unité que celle utilisée pour définir les coordonnées.
Notes sur l’utilisation¶
Si
geography_or_geometry_expression
n’est pas un polygone, MultiPolygon ou GeometryCollection contenant des polygones, ST_PERIMETER renvoie 0.Si
geography_or_geometry_expression
est un GeometryCollection, ST_PERIMETER renvoie la somme des périmètres des polygones de la collection.Utilisez cette fonction (plutôt que ST_LENGTH) pour obtenir le périmètre d’un polygone.
Exemples¶
Exemples GEOGRAPHY¶
Cela calcule la longueur du périmètre d’un polygone qui est un degré d’arc sur chaque bord et a un bord sur l’équateur :
SELECT ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); +------------------------------------------------------------------+ | ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) | |------------------------------------------------------------------| | 444763.468727621 | +------------------------------------------------------------------+
Exemples GEOMETRY¶
Les exemples suivants montrent comment utiliser la fonction ST_PERIMETER.
SELECT ST_PERIMETER(g), ST_ASWKT(g) FROM (SELECT TO_GEOMETRY(column1) AS g FROM VALUES ('POINT(1 1)'), ('LINESTRING(0 0, 1 1)'), ('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));+-----------------+--------------------------------+ | ST_PERIMETER(G) | ST_ASWKT(G) | |-----------------+--------------------------------| | 0 | POINT(1 1) | | 0 | LINESTRING(0 0,1 1) | | 4 | POLYGON((0 0,0 1,1 1,1 0,0 0)) | +-----------------+--------------------------------+