STSymDifference(geometry 데이터 형식)
특정 geometry 인스턴스 또는 다른 geometry 인스턴스에 있지만 두 인스턴스 모두에 있지는 않은 모든 점을 나타내는 개체를 반환합니다.
구문
.STSymDifference ( other_geometry )
인수
- other_geometry
STSymDistance()를 호출할 인스턴스 외의 다른 geometry 인스턴스입니다.
반환 형식
SQL Server 반환 형식: geometry
CLR 반환 형식: SqlGeometry
주의
이 메서드는 geometry 인스턴스의 SRID(Spatial Reference ID)가 일치하지 않으면 항상 Null을 반환합니다. 입력 인스턴스에 원호 세그먼트가 있을 경우에만 결과에 원호 세그먼트가 포함될 수 있습니다.
예
1.두 Polygon 인스턴스 간의 대칭 차이 계산
다음 예에서는 STSymDifference()를 사용하여 두 Polygon 인스턴스의 대칭 차이를 계산합니다.
DECLARE @g geometry;
DECLARE @h geometry;
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);
SELECT @g.STSymDifference(@h).ToString();
2.CurvePolygon 및 Polygon 인스턴스 간의 대칭 차이 계산
다음 예에서는 CurvePolygon 및 Polygon 간의 대칭 차이를 나타내는 GeometryCollection을 반환합니다.
DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';
DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';
SELECT @h.STSymDifference(@g).ToString();
3.CurvePolygon 인스턴스의 STSymDifference()를 내접된 Polygon 인스턴스와 함께 사용
다음 예에서는 비교할 두 인스턴스 간의 대칭 차이를 나타내는 내부 Polygon 링과 함께 CurvePolygon 인스턴스를 반환합니다.
DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';
DECLARE @h geometry = 'POLYGON ((1 -1, 2 -1, 2 1, 1 1, 1 -1))';
SELECT @h.STSymDifference(@g).ToString();