STDifference (тип данных geography)
Область применения: SQL Server
База данных SQL Azure Управляемый экземпляр SQL Azure
Возвращает объект, представляющий набор точек одного экземпляра geography, который находится за пределами другого экземпляра geography.
Синтаксис
.STDifference ( other_geography )
Примечание.
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Аргументы
other_geography
Другой экземпляр geography, который показывает, какие точки нужно удалить из экземпляра, для которого вызван метод STDifference().
Типы возвращаемых данных
Тип возвращаемого значения SQL Server: geography
Тип возвращаемых данных CLR: SqlGeography
Исключения
Этот метод вызывает исключение ArgumentException, если экземпляр содержит противоположную границу.
Замечания
Этот метод всегда возвращает значение NULL, если идентификаторы пространственных ссылок (SRID) экземпляров geography не совпадают.
В SQL Server набор возможных результатов, возвращаемых на сервере, был расширен до экземпляров FullGlobe . SQL Server поддерживает пространственные экземпляры, размер которых превышает полушарие. Результат может содержать сегменты дуги, только если во входном экземпляре содержатся сегменты дуги. Этот метод не является точным.
Примеры
А. Вычисление разницы между двумя географическими объектами
В следующем примере с помощью метода 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();
B. Использование параметра FullGlobe с функцией STDifference()
В следующем примере используется экземпляр 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();
См. также
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру