Catégories :

Fonctions géospatiales

ST_MAKELINE

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

Voir aussi :

TO_GEOGRAPHY , TO_GEOMETRY

Syntaxe

ST_MAKELINE( <geography_expression_1> , <geography_expression_2> )

ST_MAKELINE( <geometry_expression_1> , <geometry_expression_2> )
Copy

Arguments

geography_expression_1

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

geography_expression_2

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

geometry_expression_1

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

geometry_expression_2

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

Renvoie

La fonction renvoie une valeur de type GEOGRAPHY ou GEOMETRY. La valeur est un LineString qui connecte tous les points spécifiés par les objets GEOGRAPHY ou GEOMETRY 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.

  • Pour les objets GEOMETRY, la fonction signale une erreur si les deux objets GEOMETRY en entrée ont des SRIDs différents.

  • Pour les objets GEOMETRY, l’objet GEOMETRY renvoyé a le même SRID que l’entrée.

Exemples

Exemples GEOGRAPHY

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

alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';
Copy

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) |
+-----------------------------+
Copy

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) |
+-----------------------------------------------------------------------------+
Copy

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) |
+---------------------------------------------------------------------------------------------------+
Copy

Exemples GEOMETRY

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

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
Copy

Le premier exemple construit une ligne entre deux points :

SELECT ST_MAKELINE(
  TO_GEOMETRY('POINT(1.0 2.0)'),
  TO_GEOMETRY('POINT(3.5 4.5)')) AS line_between_two_points;
Copy
+-------------------------+
| LINE_BETWEEN_TWO_POINTS |
|-------------------------|
| LINESTRING(1 2,3.5 4.5) |
+-------------------------+
Copy

L’exemple suivant montre la création d’un LineString qui relie des points dans un MultiPoint avec un point

SELECT ST_MAKELINE(
  TO_GEOMETRY('POINT(1.0 2.0)'),
  TO_GEOMETRY('MULTIPOINT(3.5 4.5, 6.1 7.9)')) AS line_from_point_and_multipoint;
Copy
+---------------------------------+
| LINE_FROM_POINT_AND_MULTIPOINT  |
|---------------------------------|
| LINESTRING(1 2,3.5 4.5,6.1 7.9) |
+---------------------------------+
Copy

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

SELECT ST_MAKELINE(
  TO_GEOMETRY('LINESTRING(1.0 2.0, 10.1 5.5)'),
  TO_GEOMETRY('MULTIPOINT(3.5 4.5, 6.1 7.9)')) AS line_from_linestring_and_multipoint;
Copy
+------------------------------------------+
| LINE_FROM_LINESTRING_AND_MULTIPOINT      |
|------------------------------------------|
| LINESTRING(1 2,10.1 5.5,3.5 4.5,6.1 7.9) |
+------------------------------------------+
Copy