STDifference(geography 데이터 형식)
다른 geography 인스턴스 밖에 있는 특정 geography 인스턴스에서 점 집합을 나타내는 개체를 반환합니다.
구문
.STDifference ( other_geography )
인수
- other_geography
**STDifference()**를 호출할 인스턴스에서 제거할 점을 나타내는 다른 geography 인스턴스입니다.
반환 형식
SQL Server 반환 형식: geography
CLR 반환 형식: SqlGeography
예외
이 메서드는 인스턴스에 대척점 끝이 있을 경우 ArgumentException을 발생시킵니다.
주의
이 메서드는 geography 인스턴스의 SRID(Spatial Reference Identifier)가 일치하지 않으면 항상 Null을 반환합니다.
SQL Server에서는 서버에서 얻을 수 있는 결과 집합이 FullGlobe 인스턴스까지 확장되었습니다. SQL Server에서는 반구보다 큰 공간 인스턴스를 지원합니다. 입력 인스턴스에 원호 세그먼트가 있을 경우에만 결과에 원호 세그먼트가 포함될 수 있습니다. 이 메서드는 정확하지 않습니다.
예
1.두 geography 인스턴스 간의 차이 계산
다음 예에서는 STDifference()를 사용하여 두 geography 인스턴스 간의 차이를 계산합니다.
DECLARE @g geography;
DECLARE @h geography;
SET @g = geography::STGeomFromText('POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))', 4326);
SET @h = geography::STGeomFromText('LINESTRING(-122.360 47.656, -122.343 47.656)', 4326);
SELECT @g.STDifference(@h).ToString();
2.STDifference()에 FullGlobe 사용
다음 예에서는 FullGlobe 인스턴스를 사용합니다. 첫 번째 결과는 빈 GeometryCollection이고 두 번째 결과는 Polygon 인스턴스입니다. FullGlobe 인스턴스가 매개 변수인 경우 STDifference()는 빈 GeometryCollection을 반환합니다. 호출하는 geography 인스턴스의 모든 점이 FullGlobe 인스턴스에 포함됩니다.
DECLARE @g geography = 'POLYGON((-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
DECLARE @h geography = 'FULLGLOBE';
SELECT @g.STDifference(@h).ToString(),
@h.STDifference(@g).ToString();