Catégories :

Fonctions géospatiales

ST_MAKELINE

Construit un objet GEOGRAPHY qui représente une ligne reliant les points dans les objets d’entrée.

Voir aussi :

TO_GEOGRAPHY

Syntaxe

ST_MAKELINE( <geography_expression_1> , <geography_expression_2> )

Arguments

expression_géographie_1

Un objet GEOGRAPHY contenant les points à connecter. Cet objet doit être un point, MultiPoint ou LineString.

expression_géographie_2

Un objet GEOGRAPHY contenant les points à connecter. Cet objet doit être un point, MultiPoint ou LineString.

Renvoie

La fonction renvoie une valeur de type GEOGRAPHY. La valeur est un LineString qui connecte tous les points spécifiés par les objets GEOGRAPHY en entrée.

Notes sur l’utilisation

  • Si un objet GEOGRAPHY en entrée contient plusieurs points, ST_MAKELINE connecte tous les points spécifiés dans l’objet.

  • ST_MAKELINE connecte les points dans l’ordre dans lequel ils sont spécifiés en entrée.

Exemples

Les exemples de cette section affichent la sortie au format WKT :

alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';

L’exemple suivant utilise ST_MAKELINE pour construire un LineString qui connecte deux points :

SELECT ST_MAKELINE(
                   TO_GEOGRAPHY('POINT(37.0 45.0)'),
                   TO_GEOGRAPHY('POINT(38.5 46.5)')
                  ) AS line_between_two_points;
+-----------------------------+
| LINE_BETWEEN_TWO_POINTS     |
|-----------------------------|
| LINESTRING(37 45,38.5 46.5) |
+-----------------------------+

L’exemple suivant construit un LineString qui connecte un point avec les points d’un MultiPoint :

SELECT ST_MAKELINE(
                   TO_GEOGRAPHY('POINT(-122.306067 37.55412)'),
                   TO_GEOGRAPHY('MULTIPOINT((-122.32328 37.561801), (-122.325879 37.586852))')
                  ) AS line_between_point_and_multipoint;
+-----------------------------------------------------------------------------+
| LINE_BETWEEN_POINT_AND_MULTIPOINT                                           |
|-----------------------------------------------------------------------------|
| LINESTRING(-122.306067 37.55412,-122.32328 37.561801,-122.325879 37.586852) |
+-----------------------------------------------------------------------------+

Comme le montre la sortie de l’exemple, ST_MAKELINE connecte les points dans l’ordre dans lequel ils sont spécifiés dans l’entrée.

L’exemple suivant construit un LineString qui relie les points d’un MultiPoint à un autre LineString :

SELECT ST_MAKELINE(
                   TO_GEOGRAPHY('MULTIPOINT((-122.32328 37.561801), (-122.325879 37.586852))'),
                   TO_GEOGRAPHY('LINESTRING(-122.306067 37.55412, -122.496691 37.495627)')
                  ) AS line_between_multipoint_and_linestring;
+---------------------------------------------------------------------------------------------------+
| LINE_BETWEEN_MULTIPOINT_AND_LINESTRING                                                            |
|---------------------------------------------------------------------------------------------------|
| LINESTRING(-122.32328 37.561801,-122.325879 37.586852,-122.306067 37.55412,-122.496691 37.495627) |
+---------------------------------------------------------------------------------------------------+