ST_PointN — Returnerar den N:te punkten i den första LineString eller cirkulära LineString i en geometri.
geometry ST_PointN(geometry a_linestring, integer n);
Returnerar den N:te punkten i en enkel linestrings eller cirkulär linestrings i geometrin. Negativa värden räknas baklänges från slutet av LineString, så att -1 är den sista punkten. Returnerar NULL om det inte finns någon linestrings i geometrin.
|
|
|
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. |
|
|
|
Om du vill få fram den N:te punkten i varje LineString i en MultiLineString, använd tillsammans med ST_Dump |
Denna metod implementerar OGC:s implementeringsspecifikation för enkla funktioner för SQL 1.1.
Denna metod implementerar SQL/MM-specifikationen. SQL-MM 3: 7.2.5, 7.3.5
Denna funktion stöder 3d och kommer inte att tappa z-index.
Denna metod stöder cirkulära strängar och kurvor.
Ändrad: 2.0.0 fungerar inte längre med multilinestrings med en geometri. I äldre versioner av PostGIS -- skulle en multilinestring med en enda linje fungera bra med den här funktionen och returnera startpunkten. I 2.0.0 returnerar den bara NULL som vilken annan multilinjesträng som helst.
Ändrad: 2.3.0 : negativ indexering tillgänglig (-1 är sista punkten)
This example extracts all POINT geometries from a LineString.
SELECT ST_PointN(
column1,
generate_series(1, ST_NPoints(column1))
)
FROM ( VALUES ('LINESTRING(0 0,1 1,2 2)'::geometry) ) AS foo;
POINT(0 0) POINT(1 1) POINT(2 2) (3 rows)
This example uses a CircularString.
SELECT ST_PointN('CIRCULARSTRING(1 2,3 2,1 2)', 2);
POINT(3 2)
The index is 1-based. A negative index counts backward from the end of the LineString.
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;
POINT Z (1 1 1)