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

AnalyticDB:空間関数

最終更新日:Jun 11, 2024

空間関数を使用して、ジオメトリ間の空間関係を決定することができる。

  • ST_Contains: g1が完全にg2を含む場合、1を返します。
  • ST_Crosses: 左のジオメトリが右のジオメトリと空間的に交差する場合、1を返します。
  • ST_Disjoint: 左のジオメトリが右のジオメトリから空間的に分離している場合、1を返します。
  • ST_Equals: 左のジオメトリが右のジオメトリと空間的に等しい場合、1を返します。
  • ST_Intersects: 左のジオメトリが右のジオメトリと空間的に交差する場合、1を返します。
  • ST_Overlaps: 左のジオメトリが右のジオメトリと空間的に重なる場合、0を返します。
  • ST_Relate: 左右のジオメトリが次元拡張9交差モデル (DE-9IM) 行列で指定された条件を満たす場合、1を返します。 VARCHAR型の第3の入力は、関係が受け入れられることを示す。
  • ST_Touches: 左のジオメトリが右のジオメトリに空間的にタッチした場合、1を返します。
  • ST_Within: 左のジオメトリが右のジオメトリに空間的に囲まれている場合、1を返します。

ST_Contains

ST_Contains(g1, g2)
  • 説明: g1が完全にg2を含む場合、この関数は1を返します。 値1はtrueを示し、値0はfalseを示します。
    説明 g1はその境界を含まない。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Contains(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4 1))')) 、ST_GeometryFromText('POINT (2 2)');
    返された結果:
    + ----------------------------------------------------------------------------------------------------- +
    | ST_Contains(ST_GeometryFromText('POLYGON ((1 1、1 4、4 4、4 1))')) 、ST_GeometryFromText('POINT (2 2)')) |
    + ----------------------------------------------------------------------------------------------------- +
    | 1 | 

ST_Crosses

ST_Crosses(g1, g2)
  • 説明: この関数は、左のジオメトリが右のジオメトリと空間的に交差する場合に1を返します。 値1はtrueを示し、値0はfalseを示します。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Crosses(ST_GeometryFromText('POINT (20)'), ST_GeometryFromText('POINT (25)'));
    返された結果:
    + ---------------------------------------------------------------------------------------------- +
    | ST_Crosses(ST_GeometryFromText('POINT (20)'), ST_GeometryFromText('POINT (25)')) |
    + ---------------------------------------------------------------------------------------------- +
    | 0 | 

ST_Disjoint

ST_Disjoint(g1, g2)
  • 説明: この関数は、左のジオメトリが右のジオメトリから空間的に分離している場合、1を返します。 値1はtrueを示し、値0はfalseを示します。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Disjoint(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
    返された結果:
    + -------------------------------------------------------------------------------------------------- +
    | ST_Disjoint(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) |
    + -------------------------------------------------------------------------------------------------- +
    | 1 | 

ST_Equals

ST_Equals(g1, g2)
  • 説明: この関数は、左のジオメトリが右のジオメトリと空間的に等しい場合、1を返します。 値1はtrueを示し、値0はfalseを示します。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Equals(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
    返された結果:
    + ------------------------------------------------------------------------------------------------ +
    | ST_Equals(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) |
    + ------------------------------------------------------------------------------------------------ +
    | 0 | 

ST_Intersects

ST_Intersects(g1, g2)
  • 説明: この関数は、左のジオメトリが右のジオメトリと空間的に交差する場合に1を返します。 値1はtrueを示し、値0はfalseを示します。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Intersects(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
    返された結果:
    + ---------------------------------------------------------------------------------------------------- +
    | ST_Intersects(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)')) |
    + ---------------------------------------------------------------------------------------------------- +
    | 0 | 

ST_Overlaps

ST_Overlaps(g1、g2)
  • 説明: 左のジオメトリが右のジオメトリと空間的に重なる場合、この関数は0を返します。 0の値はtrueを示し、1の値はfalseを示します。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Overlaps(ST_GeometryFromText('POLYGON ((1 1, 1 4, 4 4 1)))') 、ST_GeometryFromText('POLYGON ((3 3, 3 5, 5 5, 5 3)')));
    返された結果:
    + --------------------------------------------------------------------------------------------------------------------------------- +
    | ST_Overlaps(ST_GeometryFromText('POLYGON ((1 1、1 4、4 4、4 1))')) 、ST_GeometryFromText('POLYGON ((3 3、3 5、5 5、5 3))') |
    + --------------------------------------------------------------------------------------------------------------------------------- +
    | 1 | 

ST_Relate

ST_Relate(g1, g2, s1)
  • 説明: この関数は、左右のジオメトリがDE-9IM行列で指定された条件を満たす場合、1を返します。 値1はtrueを示し、値0はfalseを示します。 VARCHAR型の第3の入力は、関係が受け入れられることを示す。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Relate(ST_GeometryFromText('LINESTRING (0 0, 3)') 、ST_GeometryFromText('LINESTRING (1 1, 4 1)') 、'**** T ****');
    返された結果:
    + -------------------------------------------------------------------------------------------------------------------------- +
    | ST_Relate(ST_GeometryFromText('LINESTRING (0 0, 3)') 、ST_GeometryFromText('LINESTRING (1 1, 4 1)') 、'**** T ****') |
    + -------------------------------------------------------------------------------------------------------------------------- +
    | 0 | 

ST_Touches

ST_Touches(g1, g2)
  • 説明: この関数は、左のジオメトリが右のジオメトリに空間的にタッチした場合に1を返します。 値1はtrueを示し、値0はfalseを示します。
  • 戻り値のデータ型: INT。
  • 例:
    SELECT ST_Touches(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'));
    返された結果:
    + ------------------------------------------------------------------------------------------------- +
    | ST_Touches(ST_GeometryFromText('POINT (50 100)') 、ST_GeometryFromText('POINT (150 150)')) |
    + ------------------------------------------------------------------------------------------------- +
    | 0 | 

ST_Within

ST_Within(g1, g2)
  • 説明: この関数は、左のジオメトリが右のジオメトリに空間的に囲まれている場合、1を返します。 値1はtrueを示し、値0はfalseを示します。
  • 戻り値のデータ型: BOOLEAN。
  • 例:
    SELECT ST_Within(ST_GeometryFromText('POINT (50 100)'), ST_GeometryFromText('POINT (150 150)'))
    返された結果:
    + ------------------------------------------------------------------------------------------------- +
    | ST_Within(ST_GeometryFromText('POINT (50 100)') 、ST_GeometryFromText('POINT (150 150)')) |
    + ------------------------------------------------------------------------------------------------- +
    | 0 |