적용 대상:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric의 SQL 데이터베이스
다른 geography 인스턴스 밖에 있는 특정 geogrphy 인스턴스에서 점 집합을 나타내는 개체를 반환합니다.
Syntax
.STDifference ( other_geography )
Arguments
other_geography
STDifference()가 호출되는 인스턴스에서 제거할 지점을 나타내는 또 다른 지리 인스턴스입니다.
반환 형식
SQL Server 반환 형식: geography
CLR 반환 형식: SqlGeography
Exceptions
이 메서드는 인스턴스에 안티포달 에지가 포함된 경우 ArgumentException 을 throw합니다.
Remarks
지리 인스턴스의 SRID(공간 참조 식별자)가 일치하지 않는 경우 이 메서드는 항상 null을 반환합니다.
SQL Server에서 서버에서 반환된 가능한 결과 집합이 FullGlobe 인스턴스로 확장되었습니다. SQL Server는 반구보다 큰 공간 인스턴스를 지원합니다. 입력 인스턴스에 원호 세그먼트가 포함된 경우에만 결과에 원호 세그먼트가 포함될 수 있습니다. 이 메서드는 정확하지 않습니다.
Examples
A. 두 지리 인스턴스 간의 차이점 계산
다음 예제에서는 두 STDifference() 인스턴스 간의 차이를 계산하는 데 사용합니다.
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();
B. STDifference()와 함께 FullGlobe 사용
다음 예제에서는 인스턴스를 사용합니다 FullGlobe . 첫 번째 결과는 빈 GeometryCollection이고 두 번째 결과는 Polygon 인스턴스입니다.
STDifference()는 인스턴스가 매개 변수인 GeometryCollection 경우 빈 FullGlobe 값을 반환합니다. 호출 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();