카테고리:

지리 공간 함수

ST_UNION

두 개의 입력 GEOGRAPHY 오브젝트가 주어진 경우, 두 오브젝트의 모양으로 구성된 결합된 세트를 나타내는 GEOGRAPHY 오브젝트를 반환합니다(즉, 두 모양의 합집합).

참고 항목:

ST_UNION_AGG , ST_INTERSECTION , ST_DIFFERENCE , ST_SYMDIFFERENCE

구문

ST_UNION( <geography_expression_1> , <geography_expression_2> )
Copy

인자

geography_expression_1

GEOGRAPHY 오브젝트입니다.

geography_expression_2

GEOGRAPHY 오브젝트입니다.

반환

함수는 GEOGRAPHY 형식의 값을 반환합니다.

사용법 노트

  • 한 입력 오브젝트의 꼭짓점이 다른 입력 오브젝트의 경계에 있는 경우(꼭짓점들 제외), 합집합의 일부 점은 출력에서 두 번 이상 표시될 수 있습니다.

    예를 들어, 다음 문에서

    SELECT ST_UNION(
      TO_GEOGRAPHY('POINT(1 1)'),
      TO_GEOGRAPHY('LINESTRING(1 0, 1 2)')
    );
    
    Copy

    POINT(1 1)LINESTRING(1 0, 1 2) 의 경계에 있지만, 꼭짓점은 아닙니다.

    이 예에서 ST_UNION은 최소 출력을 생성하는 것으로 보장되지 않습니다. 예상되는 출력은 입력 linestring일 것입니다.

    LINESTRING(1 0, 1 2)
    
    Copy

    그러나 실제 출력은 다음과 같을 수 있습니다.

    GEOMETRYCOLLECTION(POINT(1 1),LINESTRING(1 0,1 1,1 2))
    
    Copy

    여기서 POINT (1,1) 은 출력에서 두 번 표시됩니다. 즉, 한 번은 점 자체로, 한 번은 LineString 내의 한 점으로 표시됩니다.

다음 예는 두 입력 GEOGRAPHY 오브젝트의 합집합을 나타내는 GEOGRAPHY 오브젝트를 반환합니다.

ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT';

SELECT ST_UNION(
  TO_GEOGRAPHY('POLYGON((0 0, 1 0, 2 1, 1 2, 2 3, 1 4, 0 4, 0 0))'),
  TO_GEOGRAPHY('POLYGON((3 0, 3 4, 2 4, 1 3, 2 2, 1 1, 2 0, 3 0))')
) AS union_of_objects;
Copy

이 예는 다음과 같은 출력을 생성합니다.

+-------------------------------------------------------------------------------------------------------------------------------------------+
| UNION_OF_OBJECTS                                                                                                                          |
|-------------------------------------------------------------------------------------------------------------------------------------------|
| POLYGON((3 0,3 4,2 4,1.5 3.500399839,1 4,0 4,0 0,1 0,1.5 0.5000571198,2 0,3 0),(1.5 1.500171359,1 2,1.5 2.500285599,2 2,1.5 1.500171359)) |
+-------------------------------------------------------------------------------------------------------------------------------------------+
Copy

다음 이미지는 입력 및 출력 오브젝트를 나타내는 영역의 차이를 보여줍니다.

입력

출력

ST_UNION로 전달된 입력 오브젝트의 영역 ST_UNION가 반환한 출력 오브젝트의 영역