Kategorien:

Geodatenfunktionen

ST_MAKELINE

Konstruiert ein GEOGRAPHY- oder ein GEOMETRY-Objekt, das eine Linie repräsentiert, die die Punkte in den Eingabeobjekten verbindet.

Siehe auch:

TO_GEOGRAPHY, TO_GEOMETRY

Syntax

ST_MAKELINE( <geography_expression_1> , <geography_expression_2> )

ST_MAKELINE( <geometry_expression_1> , <geometry_expression_2> )
Copy

Argumente

geography_expression_1

Ein GEOGRAPHY-Objekt, das die zu verbindenden Punkte enthält. Dieses Objekt muss ein Punkt, MultiPoint oder LineString sein.

geography_expression_2

Ein GEOGRAPHY-Objekt, das die zu verbindenden Punkte enthält. Dieses Objekt muss ein Punkt, MultiPoint oder LineString sein.

geometry_expression_1

Ein GEOMETRY-Objekt, das die zu verbindenden Punkte enthält. Dieses Objekt muss ein Punkt, MultiPoint oder LineString sein.

geometry_expression_2

Ein GEOMETRY-Objekt, das die zu verbindenden Punkte enthält. Dieses Objekt muss ein Punkt, MultiPoint oder LineString sein.

Rückgabewerte

Die Funktion gibt einen Wert vom Typ GEOGRAPHY oder GEOMETRY zurück. Der Wert ist ein LineString, der alle durch die GEOGRAPHY- oder GEOMETRY-Eingabeobjekte angegebenen Punkte verbindet.

Nutzungshinweise

  • Wenn ein GEOGRAPHY-Eingabeobjekt mehrere Punkte enthält, verbindet ST_MAKELINE alle im Objekt angegebenen Punkte.

  • ST_MAKELINE verbindet die Punkte in der Reihenfolge, in der sie in der Eingabe angegeben sind.

  • Bei GEOMETRY-Objekten meldet die Funktion einen Fehler, wenn die beiden eingegebenen GEOMETRY-Objekte unterschiedliche SRIDs haben.

  • Bei GEOMETRY-Objekten hat das zurückgegebene GEOMETRY-Objekt dieselbe SRID wie das Eingabeobjekt.

Beispiele

GEOGRAPHY-Beispiele

In den Beispielen in diesem Abschnitt wird die Ausgabe im WKT-Format angezeigt:

alter session set GEOGRAPHY_OUTPUT_FORMAT='WKT';
Copy

Im folgenden Beispiel wird ST_MAKELINE verwendet, um ein LineString zu erstellen, das zwei Punkte verbindet:

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

Im folgenden Beispiel wird ein LineString erstellt, der einen Punkt mit den Punkten in einem MultiPoint verbindet:

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

Wie die Ausgabe des Beispiels zeigt, verbindet ST_MAKELINE die Punkte in der Reihenfolge, in der sie in der Eingabe angegeben sind.

Im folgenden Beispiel wird ein LineString erstellt, der die Punkte in einem MultiPoint mit einem anderen LineString verbindet:

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

GEOMETRY-Beispiele

In den Beispielen in diesem Abschnitt wird die Ausgabe im WKT-Format angezeigt:

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT';
Copy

Im ersten Beispiel wird eine Linie zwischen zwei Punkten konstruiert:

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

Das nächste Beispiel zeigt die Erstellung eines LineString, der Punkte in einem MultiPoint mit einem Punkt verbindet

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

Im folgenden Beispiel wird ein LineString erstellt, der die Punkte in einem MultiPoint mit einem anderen LineString verbindet:

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