Поделиться через


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

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

Синтаксис

.STDifference ( other_geometry )

Аргументы

  • 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();

Б.Вызов метода 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