Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Возвращает объект, представляющий все точки, принадлежащие одному из экземпляров geography, но не лежащие одновременно в обоих экземплярах.
Syntax
.STSymDifference ( other_geography )
Arguments
other_geography
Другой экземпляр geography в дополнение к экземпляру, для которого вызван метод STSymDistance().
Типы возвращаемых данных
Тип возвращаемого значения SQL Server: geography
Тип возвращаемых данных CLR: SqlGeography
Remarks
Этот метод всегда возвращает значение NULL, если идентификаторы пространственных ссылок (SRID) экземпляров geography не совпадают.
SQL Server поддерживает пространственные экземпляры, размер которых превышает полушарие. В SQL Server набор возможных результатов на сервере был расширен до экземпляров FullGlobe .
Результат может содержать сегменты дуги, только если во входном экземпляре содержатся сегменты дуги.
Examples
A. Вычисление симметрической разницы двух многоугольников
В следующем примере метод 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();