Name

ST_PointN — Gibt die Anzahl der Stützpunkte eines ST_LineString oder eines ST_CircularString zurück.

Übersicht

geometry ST_PointN(geometry a_linestring, integer n);

Beschreibung

Gibt den n-ten Punkt des ersten LineString's oder des kreisförmigen LineStrings's einer Geometrie zurück. Negative Werte werden rückwärts, vom Ende des LineString's her gezählt, sodass -1 der Endpunkt ist. Gibt NULL aus, wenn die Geometrie keinen LineString enthält.

[Anmerkung]

Index is 1-based as for OGC specs since version 0.8.0. Backward indexing (negative index) is not in OGC. Previous versions implemented this as 0-based instead.

[Anmerkung]

Falls Sie den n-ten Punkt eines jeden LineString's in einem MultiLinestring wollen, nutzen Sie diese Funktion gemeinsam mit ST_Dump.

Diese Methode implementiert die OGC Simple Features Implementation Specification for SQL 1.1.

Diese Methode setzt die SQL/MM-Spezifikation um. SQL-MM 3: 7.2.5, 7.3.5

Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.

Diese Methode unterstützt kreisförmige Strings und Kurven.

Änderung: 2.0.0 arbeitet nicht mehr mit MultiLinestring's, die nur eine einzelne Geometrie enthalten. In früheren Versionen von PostGIS gab die Funktion bei einem, aus einer einzelnen Linie bestehender MultiLinestring, den Anfangspunkt zurück. Ab 2.0.0 wird, so wie bei jedem anderen MultiLinestring auch, NULL zurückgegeben.

Änderung: 2.3.0 : negatives Indizieren verfügbar (-1 entspricht dem Endpunkt)

Beispiele

This example extracts all POINT geometries from a LineString.

Code
SELECT ST_PointN(
      column1,
      generate_series(1, ST_NPoints(column1))
   )
FROM ( VALUES ('LINESTRING(0 0,1 1,2 2)'::geometry) ) AS foo;
Ausgabe von Rastern
POINT(0 0)
 POINT(1 1)
 POINT(2 2)
(3 rows)
Figure
Geometry figure for visual-st-pointn-01

This example uses a CircularString.

Code
SELECT ST_PointN('CIRCULARSTRING(1 2,3 2,1 2)', 2);
Ausgabe von Rastern
POINT(3 2)
Figure
Geometry figure for visual-st-pointn-02

The index is 1-based. A negative index counts backward from the end of the LineString.

Code
SELECT f
FROM ST_GeomFromText('LINESTRING(0 0 0,1 1 1,2 2 2)') AS g
  CROSS JOIN ST_PointN(g, -2) AS f;
Ausgabe von Rastern
POINT Z (1 1 1)
Figure
Geometry figure for visual-st-pointn-03

Siehe auch

ST_NPoints