- 카테고리:
ST_SYMDIFFERENCE¶
두 개의 입력 GEOGRAPHY 오브젝트가 주어진 경우, 오브젝트의 교집합이 아닌 두 입력 오브젝트의 점 집합을 나타내는 GEOGRAPHY 오브젝트를 반환합니다(즉, 두 오브젝트의 대칭 차이).
- 참고 항목:
구문¶
ST_SYMDIFFERENCE( <geography_expression_1> , <geography_expression_2> )
인자¶
geography_expression_1
GEOGRAPHY 오브젝트입니다.
geography_expression_2
GEOGRAPHY 오브젝트입니다.
반환¶
함수는 GEOGRAPHY 형식의 값을 반환합니다.
geography_expression_1
및 geography_expression_2
가 같으면(즉, 대칭 차이가 빈 점 집합인 경우) 함수는 NULL을 반환합니다.
사용법 노트¶
한 입력 오브젝트의 꼭짓점이 다른 입력 오브젝트의 경계에 있는 경우(꼭짓점들 제외), 출력이 정확하지 않을 수 있습니다.
함수는 정규화 및/또는 최소 결과를 생성한다고 보장되지 않습니다. 예를 들어, 출력은 실제로 하나의 직선 세그먼트를 형성하는 여러 점을 포함하는 LineString으로 구성될 수 있습니다.
예¶
다음 예에서는 두 입력 GEOGRAPHY 오브젝트 간의 대칭 차이를 나타내는 GEOGRAPHY 오브젝트를 반환합니다.
ALTER SESSION SET GEOGRAPHY_OUTPUT_FORMAT = 'WKT'; SELECT ST_SYMDIFFERENCE( 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 symmetric_difference_between_objects;
이 예는 다음과 같은 출력을 생성합니다.
+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | SYMMETRIC_DIFFERENCE_BETWEEN_OBJECTS | |-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | MULTIPOLYGON(((1 1,1.5 1.500171359,1 2,1.5 2.500285599,1 3,1.5 3.500399839,1 4,0 4,0 0,1 0,1.5 0.5000571198,1 1)),((3 0,3 4,2 4,1.5 3.500399839,2 3,1.5 2.500285599,2 2,1.5 1.500171359,2 1,1.5 0.5000571198,2 0,3 0))) | +-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
다음 이미지는 입력 및 출력 오브젝트를 나타내는 영역의 차이를 보여줍니다.
입력 |
출력 |
---|---|