カテゴリ:

地理空間関数

ST_WITHIN

最初の地理空間オブジェクトが2番目の地理空間オブジェクトに完全に含まれている場合は、trueを返します。つまり、

  • 最初の GEOGRAPHY オブジェクト g1 は、2番目の GEOGRAPHY オブジェクト g2 に完全に含まれます。

  • 最初の GEOMETRY オブジェクト g1 は、2番目の GEOMETRY オブジェクト g2 に完全に含まれます。

ST_WITHIN(g1, g2) を呼び出すことは、 ST_CONTAINS(g2, g1) を呼び出すことと同じです。

ST_COVEREDBY と ST_WITHIN は似ているように見えるかもしれませんが、2つの関数には微妙な違いがあります。「対象」と「内」の違いの詳細については、 次元拡張9-交差モデル(DE-9IM) をご参照ください。

注釈

この関数は、入力値として GeometryCollection または FeatureCollection を使用することをサポートしていません。

ちなみに

検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。

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

ST_CONTAINSST_COVEREDBY

構文

ST_WITHIN( <geography_expression_1> , <geography_expression_2> )

ST_WITHIN( <geometry_expression_1> , <geometry_expression_2> )
Copy

引数

geography_expression_1

GeometryCollection または FeatureCollection ではない GEOGRAPHY オブジェクト。

geography_expression_2

GeometryCollection または FeatureCollection ではない GEOGRAPHY オブジェクト。

geometry_expression_1

GeometryCollection または FeatureCollection ではない GEOMETRY オブジェクト。

geometry_expression_2

GeometryCollection または FeatureCollection ではない GEOMETRY オブジェクト。

戻り値

BOOLEAN

GEOGRAPHY 例

これは、 ST_WITHIN 関数の簡単な使用法を示しています。

create table geospatial_table_01 (g1 GEOGRAPHY, g2 GEOGRAPHY);
insert into geospatial_table_01 (g1, g2) values 
    ('POLYGON((0 0, 3 0, 3 3, 0 3, 0 0))', 'POLYGON((1 1, 2 1, 2 2, 1 2, 1 1))');
Copy
SELECT ST_WITHIN(g1, g2) 
    FROM geospatial_table_01;
+-------------------+
| ST_WITHIN(G1, G2) |
|-------------------|
| False             |
+-------------------+
Copy