STSymDifference (тип данных geography)
Область применения: SQL Server
База данных SQL Azure
Управляемый экземпляр SQL Azure
базе данных SQL в Microsoft Fabric
Возвращает объект, представляющий все точки, принадлежащие одному из экземпляров geography, но не лежащие одновременно в обоих экземплярах.
Синтаксис
.STSymDifference ( other_geography )
Аргументы
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();