カテゴリ:

地理空間関数

ST_POINTN

LineString 内の指定されたインデックスにあるポイントを返します。

こちらもご参照ください。

ST_ENDPOINTST_STARTPOINT

構文

ST_POINTN( <geography_or_geometry_expression> , <index> ) 
Copy

引数

geography_or_geometry_expression

引数は、 LineString を表す型 GEOGRAPHY または GEOMETRY の式にする必要があります。

index

返すポイントのインデックス。インデックスは整数でなければなりません。

負のインデックスは、 LineString の末尾からのオフセットとして解釈されます。たとえば、 -1 は LineString の最後のポイントとして解釈され、 -2 は最後から2番目のポイントとして解釈されます。

戻り値

この関数は、 LineString の指定されたインデックスにあるポイントを含む型 GEOGRAPHY または GEOMETRY の値を返します。

使用上の注意

  • geography_or_geometry_expression が LineString ではない場合、関数はエラーを報告します。

  • index が範囲外の場合(例: LineString のポイント数を超えている場合)、関数はエラーを報告します。

GEOGRAPHY 例

次のクエリは、 LineString の2番目のポイントを返します。

ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT='WKT'; SELECT ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2); +--------------------------------------------------------------+ | ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2) | |--------------------------------------------------------------| | POINT(2 2) | +--------------------------------------------------------------+ 
Copy

次のクエリは、負のインデックスを使用して、 LineString の末尾から2番目のポイントを返します。

ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT='WKT'; SELECT ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2); +---------------------------------------------------------------+ | ST_POINTN(TO_GEOGRAPHY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2) | |---------------------------------------------------------------| | POINT(3 3) | +---------------------------------------------------------------+ 
Copy

GEOMETRY 例

次のクエリは、 LineString の2番目のポイントを返します。

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT'; SELECT ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2); +-------------------------------------------------------------+ | ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), 2) | |-------------------------------------------------------------| | POINT(2 2) | +-------------------------------------------------------------+ 
Copy

次のクエリは、負のインデックスを使用して、 LineString の末尾から2番目のポイントを返します。

ALTER SESSION SET GEOMETRY_OUTPUT_FORMAT='WKT'; SELECT ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2); +--------------------------------------------------------------+ | ST_POINTN(TO_GEOMETRY('LINESTRING(1 1, 2 2, 3 3, 4 4)'), -2) | |--------------------------------------------------------------| | POINT(3 3) | +--------------------------------------------------------------+ 
Copy