ST_PointN — ジオメトリの最初のラインストリングまたは曲線ストリングのN番目のポイントを返します。ラインストリングが存在しない場合はNULLを返します。
geometry ST_PointN(geometry a_linestring, integer n);
ジオメトリの最初のラインストリングまたは曲線ストリングのN番目のポイントを返します。ラインストリングが存在しない場合はNULLを返します。
![]() | |
0.8.0版からOGC仕様にあわせてインデクスは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インデクスを削除しません。
このメソッドは曲線ストリングと曲線に対応しています
-- ラインストリングの全てのポイントの抽出
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)