返回一个对象,它表示一个 geography 实例与另一个 geography 实例的交点。
语法
.STIntersection ( other_geography )
参数
- other_geography
与调用 STIntersection() 的实例进行比较的另一个 geography 实例。
返回类型
SQL Server 返回类型:geography
CLR 返回类型:SqlGeography
注释
返回两个 geography 实例的交集。
如果 geography 实例的空间引用标识符 (SRID) 不匹配,则 STIntersection() 始终返回 Null。
SQL Server 支持大于半球的空间实例。SQL Server 可能会在服务器上可能返回的结果集中包含 FullGlobe 实例。
只有在输入实例包含圆弧线段时,结果才会包含圆弧线段。
示例
A.计算 Polygon 和 LineString 的交集
以下示例使用 STIntersection() 计算 Polygon 和 LineString 的交集。
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.STIntersection(@h).ToString();
B.计算 Polygon 和 CurvePolygon 的交集
以下示例返回一个包含圆弧线段的实例。
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('CURVEPOLYGON(CIRCULARSTRING(-122.351 47.656, -122.341 47.656, -122.341 47.661, -122.351 47.661, -122.351 47.656))', 4326);
SELECT @g.STIntersection(@h).ToString();
C.计算与 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.STIntersection('FULLGLOBE').ToString();