すべてのプロダクト
Search
ドキュメントセンター

Lindorm:測定関数

最終更新日:Feb 24, 2025

このトピックでは、Lindorm GanosBase でサポートされている測定関数について説明します。

該当するエンジンとバージョン

重要

Lindorm SQL のバージョンは 2.6.8 以降である必要があります。 Lindorm SQL バージョンの表示方法の詳細については、「SQL バージョン」をご参照ください。

関数

次の表に、Lindorm GanosBase でサポートされている測定関数を示します。

関数

説明

ST_Area

指定されたポリゴンオブジェクトの面積を計算します。

ST_Distance

指定された 2 つのジオメトリオブジェクト間の 2 次元ユークリッド距離を計算します。

ST_DistanceSphere

指定された 2 つのジオメトリオブジェクト間の最小球面距離を計算します。 戻り値の距離の単位はメートルです。

ST_IsValid

ジオメトリオブジェクトが有効かどうかを確認します。

ST_Length

指定されたジオメトリオブジェクトの 2 次元長を計算します。

ST_LengthSphere

指定されたジオメトリオブジェクトの球面長を計算します。

ST_Area

ST_Area 関数は、指定されたポリゴンオブジェクトの面積を計算します。

構文

double ST_Area(geometry g)

パラメーター

パラメーター

説明

g

ジオメトリオブジェクト。

説明
  • Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection などのジオメトリオブジェクトを指定できます。

  • ジオメトリオブジェクトを指定すると、この関数は、ジオメトリオブジェクトの空間参照系で指定された単位でジオメトリオブジェクトの 2 次元デカルト面積を返します。 Lindorm GanosBase SQL は、SRID が 4326 の空間参照系を使用します。このシステムでは、距離は度単位で測定されます。

  • 指定されたポリゴンオブジェクトの点が複数の閉じた図形を囲んでいる場合、この関数は時計回りおよび反時計回りに点で囲まれた閉じた図形の面積の差を計算し、差の絶対値を返します。

  • ポリゴンオブジェクトを指定しない場合、値 0 が返されます。

  • 例 1:ポリゴンオブジェクトの面積を計算します。

    SELECT ST_Area(ST_GeomFromText('POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))')) AS area;
    // ポリゴンの面積を計算します。

    次の結果が返されます。

    +------+
    | area |
    +------+
    | 36.0 |
    +------+
  • 例 2:LineString オブジェクトの面積を計算します。

    SELECT ST_Area(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS area;
    // LineString の面積を計算します。

    次の結果が返されます。

    +------+
    | area |
    +------+
    | 0.0  |
    +------+

ST_Distance

ST_Distance 関数は、指定された 2 つのジオメトリオブジェクト間の 2 次元ユークリッド距離を計算します。 戻り値の距離の単位は度です。

構文

double ST_Distance(geometry geomA, geometry geomB)

パラメーター

パラメーター

説明

geomA

最初のジオメトリオブジェクト。

geomB

2 番目のジオメトリオブジェクト。

説明
  • Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection などのジオメトリオブジェクトを指定できます。

  • ジオメトリオブジェクトのいずれかが空の場合、値 0 が返されます。

  • 例 1

    SELECT ST_Distance(ST_GeomFromText('POINT(-72.1235 42.3521)'),ST_GeomFromText('LINESTRING(-72.1260 42.45, -72.123 42.1546)')) AS d;
    // 2 つのジオメトリオブジェクト間の距離を計算します。

    次の結果が返されます。

    +-----------------------+
    |           d           |
    +-----------------------+
    | 0.0015056772638228177 |
    +-----------------------+
  • 例 2

    SELECT ST_Distance(ST_GeomFromText('POINT(-72.1235 42.3521)'),ST_GeomFromText('LINESTRING EMPTY')) AS d;
    // 空の LineString と点との距離を計算します。

    次の結果が返されます。

    +---+
    | d |
    +---+
    |0.0|
    +---+

ST_DistanceSphere

ST_DistanceSphere 関数は、指定された 2 つのジオメトリオブジェクト間の最小球面距離を計算します。 戻り値の距離の単位はメートルです。

構文

double ST_DistanceSphere(geometry geomA, geometry geomB)

パラメーター

パラメーター

説明

geomA

最初のジオメトリオブジェクト。

geomB

2 番目のジオメトリオブジェクト。

説明
  • Point、LineString、Polygon、MultiPoint、MultiLineString、MultiPolygon、GeometryCollection などのジオメトリオブジェクトを指定できます。

  • ジオメトリオブジェクトのいずれかが空の場合、値 0 が返されます。

  • 指定されたジオメトリオブジェクトのいずれかがポリゴンまたは LineString オブジェクトの場合、結果にセンチメートル単位の誤差が生じる可能性があります。

  • 例 1

    SELECT ST_DistanceSphere(ST_GeomFromText('POINT(-72.1235 42.3521)'),ST_GeomFromText('LINESTRING(-72.1260 42.45, -72.123 42.1546)')) AS d;
    // 2 つのジオメトリオブジェクト間の球面距離を計算します。

    次の結果が返されます。

    +--------------------+
    |         d          |
    +--------------------+
    | 124.53287523764577 |
    +--------------------+
  • 例 2

    SELECT ST_DistanceSphere(ST_GeomFromText('POINT(-72.1235 42.3521)'),ST_GeomFromText('LINESTRING EMPTY')) AS d;
    // 空の LineString と点との球面距離を計算します。

    次の結果が返されます。

    +---+
    | d |
    +---+
    |0.0|
    +---+

ST_IsValid

ST_IsValid 関数は、ジオメトリオブジェクトが有効かどうかを確認します。 無効なジオメトリオブジェクトには、自己交差ポリゴン、重複するポリゴンを含む MultiPolygon オブジェクト、および定義に準拠していないその他のオブジェクトが含まれます。

構文

boolean ST_IsValid(geometry g)

パラメーター

パラメーター

説明

g

ジオメトリオブジェクト。

ID が 110000 のジオメトリオブジェクトが有効かどうかを確認します。

SELECT ST_IsValid(geom) FROM mapdata WHERE id=110000;
// 指定されたジオメトリが有効かどうかを確認します。

次の結果が返されます。

+------------------+
| st_isvalid(geom) |
+------------------+
| true             |
+------------------+

返される結果は true です。これは、ID が 110000 のジオメトリオブジェクトが有効であることを示します。 false が返された場合、ID が 110000 のジオメトリオブジェクトは無効です。

ST_Length

ST_Length 関数は、指定されたジオメトリオブジェクトの 2 次元長を計算します。 戻り値の長さの単位は度です。

構文

double ST_Length(geometry g)

パラメーター

パラメーター

説明

g

ジオメトリオブジェクト。

説明
  • 指定されたジオメトリオブジェクトが LineString オブジェクトの場合、デカルト座標系でのオブジェクトの 2 次元長が返されます。

  • 指定されたジオメトリオブジェクトがポリゴンオブジェクトの場合、値 0 が返されます。

  • 例 1

    SELECT ST_Length(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS length;
    // LineString の長さを計算します。

    次の結果が返されます。

    +--------+
    | length |
    +--------+
    | 5.0    |
    +--------+
  • 例 2

    SELECT ST_Length(ST_GeomFromText('POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))')) AS length;
    // ポリゴンの長さを計算します。

    次の結果が返されます。

    +--------+
    | length |
    +--------+
    | 0.0    |
    +--------+

ST_LengthSphere

ST_LengthSphere 関数は、指定されたジオメトリオブジェクトの球面長を計算します。 戻り値の長さの単位はメートルです。

構文

double ST_LengthSphere(geometry g)

パラメーター

パラメーター

説明

g

ジオメトリオブジェクト。

説明
  • 指定されたジオメトリオブジェクトが LineString オブジェクトの場合、オブジェクトの球面長が返されます。

  • 指定されたジオメトリオブジェクトがポリゴンオブジェクトの場合、値 0 が返されます。

  • 例 1

    SELECT ST_LengthSphere(ST_GeomFromText('LINESTRING(1 3,5 6)')) AS length;
    // LineString の球面長を計算します。

    次の結果が返されます。

    +------------------+
    |      length      |
    +------------------+
    | 554137.283806292 |
    +------------------+
  • 例 2

    SELECT ST_LengthSphere(ST_GeomFromText('POLYGON((2 2, 2 8, 8 8, 8 2, 2 2))')) AS length;
    // ポリゴンの球面長を計算します。

    次の結果が返されます。

    +--------+
    | length |
    +--------+
    | 0.0    |
    +--------+