Catégories :

Fonctions géospatiales

ST_POINTN

Renvoie un point à un index spécifié dans un LineString.

Voir aussi :

ST_ENDPOINT , ST_STARTPOINT

Syntaxe

ST_POINTN( <geography_or_geometry_expression> , <index> )
Copy

Arguments

geography_or_geometry_expression

L’argument doit être une expression de type GEOGRAPHY ou GEOMETRY qui représente une LineString.

index

L’index du point à retourner. L’index doit être un nombre entier.

Un index négatif est interprété comme le décalage par rapport à la fin de la LineString. Par exemple, -1 est interprété comme le dernier point de la LineString, -2 est interprété comme l’avant-dernier point, etc.

Renvoie

La fonction renvoie une valeur de type GEOGRAPHY ou GEOMETRY qui contient le Point à l’index spécifié du LineString.

Notes sur l’utilisation

  • Si geography_or_geometry_expression n’est pas une LineString, la fonction signale une erreur.

  • Si index est hors limites (par exemple, dépasse le nombre de points dans la LineString), la fonction signale une erreur.

Exemples

Exemples GEOGRAPHY

La requête suivante renvoie le deuxième point d’une LineString :

ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2);

+--------------------------------------------------------------+
| ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2) |
|--------------------------------------------------------------|
| POINT(2 2)                                                   |
+--------------------------------------------------------------+
Copy

La requête suivante utilise un index négatif pour retourner le deuxième point à partir de la fin d’une LineString :

ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2);

+---------------------------------------------------------------+
| ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2) |
|---------------------------------------------------------------|
| POINT(3 3)                                                    |
+---------------------------------------------------------------+
Copy

Exemples GEOMETRY

La requête suivante renvoie le deuxième point d’une LineString :

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2);

+-------------------------------------------------------------+
| ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2) |
|-------------------------------------------------------------|
| POINT(2 2)                                                  |
+-------------------------------------------------------------+
Copy

La requête suivante utilise un index négatif pour retourner le deuxième point à partir de la fin d’une LineString :

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
SELECT ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2);

+--------------------------------------------------------------+
| ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2) |
|--------------------------------------------------------------|
| POINT(3 3)                                                   |
+--------------------------------------------------------------+
Copy