STSymDifference (тип данных geography)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Возвращает объект, представляющий все точки, принадлежащие одному из экземпляров geography, но не лежащие одновременно в обоих экземплярах.

Синтаксис

  
.STSymDifference ( other_geography )  

Примечание.

Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.

Аргументы

other_geography
Другой экземпляр geography в дополнение к экземпляру, для которого вызван метод STSymDistance().

Типы возвращаемых данных

Тип возвращаемого значения SQL Server: geography

Тип возвращаемых данных CLR: SqlGeography

Замечания

Этот метод всегда возвращает значение NULL, если идентификаторы пространственных ссылок (SRID) экземпляров geography не совпадают.

SQL Server поддерживает пространственные экземпляры, размер которых превышает полушарие. В SQL Server набор возможных результатов на сервере был расширен до экземпляров FullGlobe .

Результат может содержать сегменты дуги, только если во входном экземпляре содержатся сегменты дуги.

Примеры

А. Вычисление симметрической разницы двух многоугольников

В следующем примере метод STSymDifference() применяется для вычисления симметрической разности двух экземпляров Polygon.

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('POLYGON((-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);  
SELECT @g.STSymDifference(@h).ToString();  

B. Вычисление симметрической разницы с FullGlobe

В следующем примере сравнивается симметричная разница между Polygon и 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))';  
 SELECT @g.STSymDifference('FULLGLOBE').ToString();

См. также

Методы OGC в экземплярах Geography