STSymDifference(geography 数据类型)

返回一个对象,它表示位于一个 geography 实例或另一个 geography 实例中的所有点,但不包含同时位于这两个实例中的点。

语法

.STSymDifference ( other_geography )

参数

  • other_geography
    另一个 geography 实例,即在其自身上调用 STSymDistance() 的实例以外的另一个实例。

返回类型

SQL Server 返回类型:geography

CLR 返回类型:SqlGeography

注释

如果 geography 实例的空间引用标识符 (SRID) 不匹配,则此方法始终返回 Null。

SQL Server 支持大于半球的空间实例。 在 SQL Server 中,服务器上的可能结果集已扩展到 FullGlobe 实例。

只有在输入实例包含圆弧线段时,结果才会包含圆弧线段。

示例

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

请参阅

其他资源

地域实例上的 OGC 方法