- 카테고리:
ST_CONTAINS¶
GEOGRAPHY 또는 GEOMETRY 오브젝트가 동일한 유형의 다른 오브젝트 내부에 완전히 들어 있으면 TRUE를 반환합니다.
보다 엄격하게는, g2의 점이 g1의 외부에 없고, B 내부의 점 중 적어도 한 개가 A의 내부에 있는 경우에만 오브젝트 g1은 오브젝트 g2를 포함합니다. 이 정의에는 곧바로 명확하게 이해되지 않는 미묘한 점이 어느 정도 있습니다. “포함”의 의미에 대한 자세한 내용은 차원 확장 9-교차 모델(DE-9IM) 을 참조하십시오.
ST_COVERS와 ST_CONTAINS가 비슷해 보일 수 있지만, 두 함수는 미묘한 차이가 있습니다. “covers”와 “contains”의 차이점에 대한 자세한 내용은 차원 확장 9-교차 모델(DE-9IM) 을 참조하십시오.
참고
이 함수는 GeometryCollection 또는 FeatureCollection을 입력 값으로 사용하는 것을 지원하지 않습니다.
팁
검색 최적화 서비스를 사용하여 이 함수를 호출하는 쿼리의 성능을 향상할 수 있습니다. 자세한 내용은 검색 최적화 서비스 섹션을 참조하십시오.
- 참고 항목:
구문¶
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 오브젝트의 경우 두 입력 GEOMETRY 오브젝트의 SRID가 서로 다른 경우 함수에서 오류를 보고합니다.
예¶
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에 따라 다음이 결정됩니다.
Polygon은 자신을 포함합니다.
Polygon은 경계에 있는 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 | +--------------------------------+------------------------+------------------------------------+-------------------------------+