カテゴリ:

地理空間関数

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