카테고리:

지리 공간 함수

ST_COVERS

한 지리 공간 오브젝트에 있는 어떤 지점도 다른 지리 공간 오브젝트 외부에 없으면 TRUE를 반환합니다. 즉:

  • GEOGRAPHY 오브젝트 g2 는 GEOGRAPHY 오브젝트 g1 외부에 있습니다.

  • GEOMETRY 오브젝트 g2 는 GEOMETRY 오브젝트 g1 외부에 있습니다.

ST_COVERS는 ST_CONTAINS와 유사하지만, 미묘하게 다릅니다. “covers”와 “contains”의 차이점에 대한 자세한 내용은 차원 확장 9-교차 모델(DE-9IM) 을 참조하십시오.

ST_COVERS와 ST_CONTAINS가 비슷해 보일 수 있지만, 두 함수는 미묘한 차이가 있습니다. “covers”와 “contains”의 차이점에 대한 자세한 내용은 차원 확장 9-교차 모델(DE-9IM) 을 참조하십시오.

참고

이 함수는 GeometryCollection 또는 FeatureCollection을 입력 값으로 사용하는 것을 지원하지 않습니다.

검색 최적화 서비스를 사용하여 이 함수를 호출하는 쿼리의 성능을 향상할 수 있습니다. 자세한 내용은 검색 최적화 서비스 섹션을 참조하십시오.

참고 항목:

ST_CONTAINS , ST_COVEREDBY

구문

ST_COVERS( <geography_expression_1> , <geography_expression_2> )

ST_COVERS( <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.

사용법 노트

  • GEOMETRY 오브젝트의 경우 두 입력 GEOMETRY 오브젝트의 SRID가 서로 다른 경우 함수에서 오류를 보고합니다.

GEOGRAPHY 예

이는 ST_COVERS 함수의 간단한 사용법을 보여줍니다.

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_COVERS(g1, g2) 
    FROM geospatial_table_01;
+-------------------+
| ST_COVERS(G1, G2) |
|-------------------|
| True              |
+-------------------+
Copy

GEOMETRY 예

아래 쿼리는 ST_COVERS를 사용하는 몇 가지 예를 보여줍니다. Polygon이 경계에서 LineString를 덮는 방식(하지만 포함 하지는 않음)에 유의하십시오.

SELECT ST_COVERS(poly, poly_inside),
       ST_COVERS(poly, poly),
       ST_COVERS(poly, line_on_boundary),
       ST_COVERS(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);
Copy
+------------------------------+----------------------+----------------------------------+-----------------------------+
| ST_COVERS(POLY, POLY_INSIDE) | ST_COVERS(POLY,POLY) | ST_COVERS(POLY,LINE_ON_BOUNDARY) | ST_COVERS(POLY,LINE_INSIDE) |
|------------------------------+----------------------+----------------------------------+-----------------------------|
| True                         | True                 | True                             | True                        |
+------------------------------+----------------------+----------------------------------+-----------------------------+
Copy