Catégories :

Fonctions géospatiales

ST_MAKELINE

Constructs a GEOGRAPHY or GEOMETRY object that represents a line connecting the points in the input objects.

Voir aussi :

TO_GEOGRAPHY , TO_GEOMETRY

Syntaxe

ST_MAKELINE( <geography_expression_1> , <geography_expression_2> )

ST_MAKELINE( <geometry_expression_1> , <geometry_expression_2> )

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.

geometryy_expression_1

A GEOMETRY object containing the points to connect. This object must be a Point, MultiPoint, or LineString.

geometry_expression_2

A GEOMETRY object containing the points to connect. This object must be a Point, MultiPoint, or LineString.

Renvoie

The function returns a value of type GEOGRAPHY or GEOMETRY. The value is a LineString that connects all of the points specified by the input GEOGRAPHY or GEOMETRY objects.

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.

  • For GEOMETRY objects, the function reports an error if the two input GEOMETRY objects have different SRIDs.

  • For GEOMETRY objects, the returned GEOMETRY object has the same SRID as the input.

Exemples

GEOGRAPHY Examples

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

GEOMETRY Examples

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

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';

The first example constructs a line between two Points:

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

The next example demonstrates creating a LineString that connects points in a MultiPoint with a 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;
+---------------------------------+
| LINE_FROM_POINT_AND_MULTIPOINT  |
|---------------------------------|
| LINESTRING(1 2,3.5 4.5,6.1 7.9) |
+---------------------------------+

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;
+------------------------------------------+
| LINE_FROM_LINESTRING_AND_MULTIPOINT      |
|------------------------------------------|
| LINESTRING(1 2,10.1 5.5,3.5 4.5,6.1 7.9) |
+------------------------------------------+
Revenir au début