Kategorien:

Geodatenfunktionen

ST_POINTN

Gibt einen Punkt zu einem angegebenen Index eines LineString-Objekts zurück.

Siehe auch:

ST_ENDPOINT, ST_STARTPOINT

Syntax

ST_POINTN( <geography_or_geometry_expression> , <index> )
Copy

Argumente

geography_or_geometry_expression

Das Argument muss ein Ausdruck vom Typ GEOGRAPHY oder GEOMETRY sein, der einen LineString darstellt.

index

Der Index des zurückzugebenden Punktes. Der Index muss eine Ganzzahl (Integer) sein.

Ein negativer Index wird als Offset vom Ende des LineString-Objekts interpretiert. Beispielsweise wird -1 als der letzte Punkt des LineString interpretiert, -2 als der vorletzte Punkt usw.

Rückgabewerte

Die Funktion gibt einen Wert vom Typ GEOGRAPHY oder GEOMETRY zurück, der den Punkt am angegebenen Index des LineString-Objekts enthält.

Nutzungshinweise

  • Wenn geography_or_geometry_expression kein LineString ist, gibt die Funktion einen Fehler zurück.

  • Wenn index außerhalb der Grenzen liegt (z. B. die Anzahl der Punkte in LineString überschreitet), gibt die Funktion einen Fehler zurück.

Beispiele

GEOGRAPHY-Beispiele

Die folgende Abfrage gibt den zweiten Punkt eines LineString-Objekts zurück:

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

Die folgende Abfrage verwendet einen negativen Index, um den zweiten Punkt vom Ende eines LineString-Objekts zurückzugeben:

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

GEOMETRY-Beispiele

Die folgende Abfrage gibt den zweiten Punkt eines LineString-Objekts zurück:

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

Die folgende Abfrage verwendet einen negativen Index, um den zweiten Punkt vom Ende eines LineString-Objekts zurückzugeben:

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