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();

참고 항목

관련 자료

geography 인스턴스의 OGC 메서드