ST_COVERS

ST_COVERS

ST_COVERS 함수는 하나의 지리공간 객체의 한 점도 다른 지리공간 객체의 밖에 있지 않으면 TRUE를 반환해요.

출처: ST_COVERS

본문

ST_COVERS 함수는 하나의 지리공간 객체의 어떤 점도 다른 지리공간 객체의 밖에 있지 않으면 TRUE를 반환해요. 즉:

  • GEOGRAPHY 객체 g2가 GEOGRAPHY 객체 g1의 밖에 있지 않음.
  • GEOMETRY 객체 g2가 GEOMETRY 객체 g1의 밖에 있지 않음.

ST_COVERS는 ST_CONTAINS와 유사하지만 미묘하게 다르며, "covers"(덮음)와 "contains"(포함)의 차이에 대한 자세한 내용은 Dimensionally Extended 9-Intersection Model(DE-9IM)을 참조해요.

참고: 이 함수는 입력 값으로 GeometryCollection 또는 FeatureCollection을 지원하지 않아요.

팁: 검색 최적화 서비스를 사용해 이 함수를 호출하는 쿼리의 성능을 향상시킬 수 있어요. 자세한 내용은 Search optimization service를 참조해요.

함께 보기: ST_CONTAINS, ST_COVEREDBY

구문 (Syntax)

ST_COVERS( <geography_expression_1> , <geography_expression_2> )

ST_COVERS( <geometry_expression_1> , <geometry_expression_2> )

인자 (Arguments)

  • geography_expression_1 — GEOGRAPHY 객체로, GeometryCollection 또는 FeatureCollection이 아니어야 해요.
  • geography_expression_2 — GEOGRAPHY 객체로, GeometryCollection 또는 FeatureCollection이 아니어야 해요.
  • geometry_expression_1 — GEOMETRY 객체로, GeometryCollection 또는 FeatureCollection이 아니어야 해요.
  • geometry_expression_2 — GEOMETRY 객체로, GeometryCollection 또는 FeatureCollection이 아니어야 해요.

반환 (Returns)

BOOLEAN.

사용 메모 (Usage notes)

  • GEOMETRY 객체의 경우, 두 입력 GEOMETRY 객체의 SRID가 다르면 함수는 오류를 보고해요.

예제 (Examples)

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

GEOMETRY 예제

아래 쿼리는 ST_COVERS를 사용하는 여러 예제를 보여줘요. Polygon이 경계의 LineString을 포함(contain)하지 않으면서 덮는(covers) 방식을 주목해요:

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);
+------------------------------+----------------------+----------------------------------+-----------------------------+
| ST_COVERS(POLY, POLY_INSIDE) | ST_COVERS(POLY,POLY) | ST_COVERS(POLY,LINE_ON_BOUNDARY) | ST_COVERS(POLY,LINE_INSIDE) |
|------------------------------+----------------------+----------------------------------+-----------------------------|
| True                         | True                 | True                             | True                        |
+------------------------------+----------------------+----------------------------------+-----------------------------+

더 알아보기 (Learn more)

  • ST_CONTAINS
  • ST_COVEREDBY
  • 지리공간 함수 (Geospatial functions)