Catégories :

Fonctions géospatiales

ST_LENGTH

Renvoie la grande longueur circulaire du ou des LineString dans un objet GEOGRAPHY ou la longueur euclidienne du ou des LineString dans un objet GEOMETRY.

Syntaxe

ST_LENGTH( <geography_or_geometry_expression> ) 
Copy

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 valeurs d’entrée GEOGRAPHY, la longueur est en mètres.

  • Pour les valeurs d’entrée GEOMETRY, la longueur est calculée avec les mêmes unités que celles utilisées pour définir les coordonnées d’entrée.

Notes sur l’utilisation

  • Si geography_or_geometry_expression n’est pas un LineString, MultiLineString ou un GeometryCollection contenant des chaînes de lignes, ST_LENGTH renvoie 0.

  • Si geography_or_geometry_expression est un GeometryCollection, ST_LENGTH renvoie la somme des longueurs des chaînes de lignes de la collection.

  • Si vous voulez la longueur du périmètre d’un polygone, utilisez plutôt la fonction ST_PERIMETER.

Exemples

Exemples GEOGRAPHY

Cela montre la longueur en mètres d’un degré d’arc à l’équateur :

SELECT ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)')); +---------------------------------------------------------+ | ST_LENGTH(TO_GEOGRAPHY('LINESTRING(0.0 0.0, 1.0 0.0)')) | |---------------------------------------------------------| | 111195.101177484 | +---------------------------------------------------------+ 
Copy

Exemples GEOMETRY

Les exemples suivants montrent comment utiliser la fonction ST_LENGTH.

SELECT ST_LENGTH(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))')); 
Copy
+--------------+--------------------------------+ | ST_LENGTH(G) | ST_ASWKT(G) | |--------------+--------------------------------| | 0 | POINT(1 1) | | 1.414213562 | LINESTRING(0 0,1 1) | | 0 | POLYGON((0 0,0 1,1 1,1 0,0 0)) | +--------------+--------------------------------+ 
Copy