Lindorm GanosBase のアクセサ関数は、ポイント、座標値、バウンディングボックスの範囲、頂点数など、空間データから幾何学的プロパティを取得します。これらの関数は、バージョン要件なしで LindormTable に適用可能です。
関数一覧
| 関数 | 説明 |
|---|---|
| ST_Centroid | Geometry オブジェクトの重心を返します |
| ST_EndPoint | LineString の最後のポイントを返します |
| ST_NPoints | Geometry オブジェクト内の頂点数を返します |
| ST_StartPoint | LineString の開始ポイントを返します |
| ST_X | Point の X 座標値を返します |
| ST_XMax | Geometry オブジェクトのバウンディングボックスの最大 X 座標を返します |
| ST_XMin | Geometry オブジェクトのバウンディングボックスの最小 X 座標を返します |
| ST_Y | Point の Y 座標値を返します |
| ST_YMax | Geometry オブジェクトのバウンディングボックスの最大 Y 座標を返します |
| ST_YMin | Geometry オブジェクトのバウンディングボックスの最小 Y 座標を返します |
ST_Centroid
Geometry オブジェクトの重心を返します。
Geometry オブジェクトが Empty の場合、この関数は Empty ジオメトリを返します。
構文
geometry ST_Centroid(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
例 1:ポイントコレクションの重心
SELECT ST_AsText(ST_Centroid(ST_Collect(ST_MakePoint(1,1),ST_MakePoint(-1,-1)))) AS astext;実行結果:
+-------------+
| astext |
+-------------+
| POINT (0 0) |
+-------------+例 2:LineString の重心
SELECT ST_AsText(ST_Centroid(ST_GeomFromText('LINESTRING(0 0,0 1,1 2)'))) AS astext;実行結果:
+--------------------------------+
| astext |
+--------------------------------+
| POINT (0.2928932188134525 |
| 1.085786437626905) |
+--------------------------------+関連関数
ST_EndPoint、ST_NPoints、ST_StartPoint、ST_X、ST_Y
ST_EndPoint
LineString の最後のポイントを返します。
入力が LineString でない場合は NULL を返します。
構文
geometry ST_EndPoint(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
例 1:LineString の最後のポイント
SELECT ST_AsText(ST_EndPoint(ST_GEOMFROMTEXT('LINESTRING(1 1, 2 2, 3 3)'))) AS endpoint;実行結果:
+-------------+
| endpoint |
+-------------+
| POINT (3 3) |
+-------------+例 2:LineString 以外の入力の場合(NULL 返却)
SELECT ST_EndPoint(ST_GeomFromText('POINT(1 1)')) IS NULL AS is_null;実行結果:
+---------+
| is_null |
+---------+
| true |
+---------+関連関数
ST_StartPoint、ST_NPoints
ST_NPoints
Geometry オブジェクト内の頂点数を返します。すべてのジオメトリ型に適用可能です。
構文
int ST_NPoints(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
SELECT ST_NPoints(ST_GeomFromText('LINESTRING(77.29 29.07,77.42 29.26,77.27 29.31,77.29 29.07)')) AS npoints;実行結果:
+---------+
| npoints |
+---------+
| 4 |
+---------+関連関数
ST_StartPoint、ST_EndPoint
ST_StartPoint
LineString の開始ポイントを返します。
入力が LineString でない場合は NULL を返します。
構文
geometry ST_StartPoint(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
例 1:LineString の開始ポイント
SELECT ST_AsText(ST_StartPoint(ST_GEOMFROMTEXT('LINESTRING(0 1, 0 2)'))) AS startpoint;実行結果:
+-------------+
| startpoint |
+-------------+
| POINT (0 1) |
+-------------+例 2:LineString 以外の入力の場合(NULL 返却)
SELECT ST_StartPoint(ST_GeomFromText('POINT(1 1)')) IS NULL AS is_null;実行結果:
+---------+
| is_null |
+---------+
| true |
+---------+関連関数
ST_EndPoint、ST_NPoints
ST_X
Point の X 座標値を返します。
入力は Point 型である必要があります。入力が Empty Point または NULL の場合、NULL を返します。
構文
BigDecimal ST_X(geometry a_point)パラメーター
| パラメーター | 説明 |
|---|---|
| a_point | 入力 Point オブジェクト |
使用例
例 1:Point の X 座標値
SELECT ST_X(ST_MakePoint(1.0, 2.0)) AS x;実行結果:
+---+
| x |
+---+
| 1 |
+---+例 2:NULL 入力の場合(NULL 返却)
SELECT ST_X(NULL) IS NULL AS is_null;実行結果:
+---------+
| is_null |
+---------+
| true |
+---------+関連関数
ST_Y、ST_XMax、ST_XMin
ST_XMax
Geometry オブジェクトのバウンディングボックスの最大 X 座標を返します。
Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection をサポートします。Geometry オブジェクトが Empty の場合、-1 を返します。
構文
BigDecimal ST_XMax(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
SELECT ST_XMax(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS xmax;実行結果:
+------+
| xmax |
+------+
| 5 |
+------+関連関数
ST_XMin、ST_YMax、ST_YMin、ST_X
ST_XMin
Geometry オブジェクトのバウンディングボックスの最小 X 座標を返します。
Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection をサポートします。Geometry オブジェクトが Empty の場合、0 を返します。
構文
BigDecimal ST_XMin(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
SELECT ST_XMin(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS xmin;実行結果:
+------+
| xmin |
+------+
| 1 |
+------+関連関数
ST_XMax、ST_YMax、ST_YMin、ST_X
ST_Y
Point の Y 座標値を返します。
入力は Point 型である必要があります。入力が Empty Point または NULL の場合、NULL を返します。
構文
BigDecimal ST_Y(geometry a_point)パラメーター
| パラメーター | 説明 |
|---|---|
| a_point | 入力 Point オブジェクト |
使用例
例 1:Point の Y 座標値
SELECT ST_Y(ST_MakePoint(1.0, 2.0)) AS y;実行結果:
+---+
| y |
+---+
| 2 |
+---+例 2:NULL 入力の場合(NULL 返却)
SELECT ST_Y(NULL) IS NULL AS is_null;実行結果:
+---------+
| is_null |
+---------+
| true |
+---------+関連関数
ST_X、ST_YMax、ST_YMin
ST_YMax
Geometry オブジェクトのバウンディングボックスの最大 Y 座標を返します。
Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection をサポートします。Geometry オブジェクトが Empty の場合、-1 を返します。
構文
BigDecimal ST_YMax(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
SELECT ST_YMax(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS ymax;実行結果:
+------+
| ymax |
+------+
| 6 |
+------+関連関数
ST_YMin、ST_XMax、ST_XMin、ST_Y
ST_YMin
Geometry オブジェクトのバウンディングボックスの最小 Y 座標を返します。
Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection をサポートします。Geometry オブジェクトが Empty の場合、0 を返します。
構文
BigDecimal ST_YMin(geometry g)パラメーター
| パラメーター | 説明 |
|---|---|
| g | 入力 Geometry オブジェクト |
使用例
SELECT ST_YMin(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS ymin;実行結果:
+------+
| ymin |
+------+
| 3 |
+------+関連関数
ST_YMax、ST_XMax、ST_XMin、ST_Y