名前

ST_PointN — ジオメトリの最初のラインストリングまたは曲線ストリングのN番目のポイントを返します。

概要

geometry ST_PointN(geometry a_linestring, integer n);

説明

ラインストリングまたは曲線ストリングのN番目の点を返します。負数はラインストリングの終端から逆方向に遡って数えます。-1は終端を指します。ジオメトリにラインストリングが無い場合には、NULLを返します。

[注記]

OGC仕様では0.8.0版から要素番号は1始まりです。逆方向要素番号 (負の要素番号)はOGC仕様にはありません。前の版では0始まりで実装していました。

[注記]

マルチラインストリング内のラインストリングのN番目のポイントを得るには、ST_Dumpを併用します。

このメソッドはOGC Simple Features Implementation Specification for SQL 1.1の実装です。

このメソッドはSQL/MM仕様の実装です。 SQL-MM 3: 7.2.5, 7.3.5

この関数は3次元に対応し、Z値を削除しません。

このメソッドは曲線ストリングと曲線に対応しています。

Changed: 2.0.0 単一ジオメトリのMULTILINESTRINGで動作しなくなりました。単一のラインストリングからなるMULTILINESTRINGについては幸運にも動いていて、最初のポイントを返していました。2.0.0では他のMULTILINESTRINGと同様にNULLを返すようになりました。

Changed: 2.3.0 : 負数インデックスが有効になりました (-1は終端を指します)

この例では一つのLINESTRINGから全てのPOINTジオメトリーを抽出します。

Code
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)
Figure
Geometry figure for visual-st-pointn-01

この例ではCIRBULARSTRINGを使います。

Code
SELECT ST_PointN('CIRCULARSTRING(1 2,3 2,1 2)', 2);
出力:
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;
出力:
POINT Z (1 1 1)
Figure
Geometry figure for visual-st-pointn-03

関連情報

ST_NPoints