STDifference (тип данных geometry)

Применяется к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure sql analytics в хранилище Microsoft Fabricв Microsoft Fabric

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

Синтаксис

  
.STDifference ( other_geometry )  

Примечание.

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

Аргументы

other_geometry
Другой экземпляр geometry, который показывает, какие точки нужно удалить из экземпляра, для которого вызван метод STDifference().

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

Тип возвращаемых данных SQL Server: geometry

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

Замечания

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

Примеры

А. Вычисление разницы между двумя экземплярами объекта Polygon

В следующем примере с помощью метода STDifference() вычисляется разница между двумя многоугольниками.

DECLARE @g geometry;  
DECLARE @h geometry;  
SET @g = geometry::STGeomFromText('POLYGON((0 0, 0 2, 2 2, 2 0, 0 0))', 0);  
SET @h = geometry::STGeomFromText('POLYGON((1 1, 3 1, 3 3, 1 3, 1 1))', 0);  
SELECT @g.STDifference(@h).ToString();  

B. Вызов метода STDifference() для экземпляра CurvePolygon

В следующем примере метод STDifference() используется для экземпляра объекта CurvePolygon.

 DECLARE @g geometry = 'CURVEPOLYGON (CIRCULARSTRING (0 -4, 4 0, 0 4, -4 0, 0 -4))';  
 DECLARE @h geometry = 'POLYGON ((1 -1, 5 -1, 5 3, 1 3, 1 -1))';  
 -- Note the different results returned by the two SELECT statements  
 SELECT @h.STDifference(@g).ToString(), @g.STDifference(@h).ToString();

См. также

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