- カテゴリ:
ST_CONTAINS¶
GEOGRAPHY または GEOMETRY オブジェクトが、同じ型の別のオブジェクト内に完全にある場合は、TRUE を返します。
より厳密には、g2のポイントがg1の外部になく、Bの内部の少なくとも1つのポイントがAの内部にある場合にのみ、オブジェクトg1にはオブジェクトg2が含まれます。この定義には、すぐに明確ではない微妙な点があります。「含む」の意味の詳細については、 次元拡張9交差点モデル(DE-9IM) をご参照ください。
ST_COVERS と ST_CONTAINS は似ているように見えるかもしれませんが、2つの関数には微妙な違いがあります。「カバー」と「含む」の違いの詳細については、 次元拡張9交差点モデル(DE-9IM) をご参照ください。
注釈
この関数は、入力値として GeometryCollection または FeatureCollection を使用することをサポートしていません。
Tip
検索最適化サービスを使用すると、この関数を呼び出すクエリのパフォーマンスを向上させることができます。詳細については、 検索最適化サービス をご参照ください。
- こちらもご参照ください。
構文¶
ST_CONTAINS( <geography_expression_1> , <geography_expression_2> )
ST_CONTAINS( <geometry_expression_1> , <geometry_expression_2> )
引数¶
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
使用上の注意¶
GEOMETRY オブジェクトの場合、2つの入力 GEOMETRY オブジェクトの SRIDs が異なると、関数はエラーを報告します。
例¶
GEOGRAPHY 例¶
これは、 ST_CONTAINS 関数の簡単な使用法を示しています。
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))');SELECT ST_CONTAINS(g1, g2) FROM geospatial_table_01; +---------------------+ | ST_CONTAINS(G1, G2) | |---------------------| | True | +---------------------+
GEOMETRY 例¶
以下のクエリは、 ST_CONTAINS の使用例をいくつか示しています。ST_CONTAINS が次を判断する方法に注意してください。
ポリゴンにはそれ自体が含まれます。
ポリゴンには、その境界にある LineString が含まれません。
SELECT ST_CONTAINS(poly, poly_inside), ST_CONTAINS(poly, poly), ST_CONTAINS(poly, line_on_boundary), ST_CONTAINS(poly, line_inside) FROM (SELECT TO_GEOMETRY('POLYGON((-2 0, 0 2, 2 0, -2 0))') AS poly, TO_GEOMETRY('POLYGON((-1 0, 0 1, 1 0, -1 0))') AS poly_inside, TO_GEOMETRY('LINESTRING(-1 1, 0 2, 1 1)') AS line_on_boundary, TO_GEOMETRY('LINESTRING(-2 0, 0 0, 0 1)') AS line_inside);
+--------------------------------+------------------------+------------------------------------+-------------------------------+ | ST_CONTAINS(POLY, POLY_INSIDE) | ST_CONTAINS(POLY,POLY) | ST_CONTAINS(POLY,LINE_ON_BOUNDARY) | ST_CONTAINS(POLY,LINE_INSIDE) | |--------------------------------+------------------------+------------------------------------+-------------------------------| | True | True | False | True | +--------------------------------+------------------------+------------------------------------+-------------------------------+