STDifference (geography 資料類型)
適用於:Microsoft Fabric 中的 SQL Server
Azure SQL 資料庫 Azure SQL 受控執行個體
SQL 資料庫
傳回物件,表示在另一個 geography 執行個體外之某個 geography 執行個體的點集合。
語法
.STDifference ( other_geography )
引數
other_geography
這是另一個 geography 執行個體,指示要從 STDifference() 叫用所在的執行個體中移除哪些點。
傳回型別
SQL Server 傳回類型:geography
CLR 傳回類型:SqlGeography
例外狀況
如果執行個體包含對蹠邊緣,這個方法會擲回 ArgumentException。
備註
如果 geography 執行個體的空間參考識別碼 (SRID) 不相符,這個方法一定會傳回 null。
在 SQL Server 中,伺服器上傳回的可能結果集,已擴充到 FullGlobe 執行個體。 SQL Server 支援大於半球體的空間執行個體。 只有當輸入執行個體包含圓弧線段時,結果才能包含圓弧線段。 這個方法並不精確。
範例
A. 計算兩個地理位置執行個體之間的差異
下列範例使用 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();