名前

ST_PointN — ジオメトリの最初のラインストリングまたは曲線ストリングのN番目のポイントを返します。ラインストリングが存在しない場合はNULLを返します。

概要

geometry ST_PointN(geometry a_linestring, integer n);

説明

ジオメトリの最初のラインストリングまたは曲線ストリングのN番目のポイントを返します。ラインストリングが存在しない場合はNULLを返します。

[注記]

OGC仕様のため0.8.0版からインデクスを1はじまりにしています。これより前の版では0はじまりになっています。

[注記]

マルチラインストリングからN番目のポイントを得たい場合には、ST_Dumpを併用して下さい。

このメソッドはOpenGIS Simple Features Implementation Specification for SQL 1.1.に準拠しています。

このメソッドはSQL/MM仕様に準拠しています。 SQL-MM 3: 7.2.5, 7.3.5

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

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

[注記]

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

-- ラインストリングの全てのポイントの抽出
SELECT ST_AsText(
   ST_PointN(
          column1,
          generate_series(1, ST_NPoints(column1))
   ))
FROM ( VALUES ('LINESTRING(0 0, 1 1, 2 2)'::geometry) ) AS foo;

 st_astext
------------
 POINT(0 0)
 POINT(1 1)
 POINT(2 2)
(3 rows)

-- 曲線ストリングの例
SELECT ST_AsText(ST_PointN(ST_GeomFromText('CIRCULARSTRING(1 2, 3 2, 1 2)'),2));

st_astext
----------
POINT(3 2)

関連情報

ST_NPoints