適用於:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Microsoft Fabric 中的 SQL 資料庫
傳回在給定 geography 執行個體上執行 Douglas-Peucker 演算法 (具有給定的容錯) 所產生之該執行個體的近似值。
這個 geography 資料類型方法可支援 FullGlobe 執行個體或大於半球的空間執行個體。
Syntax
.Reduce ( tolerance )
Arguments
| Term | Definition |
|---|---|
| tolerance | 這是 float 類型的值。 tolerance 是輸入到 Douglas-Peucker 演算法的容錯。 tolerance 必須是正數。 |
傳回型別
SQL Server 傳回類型:geography
CLR 傳回類型:SqlGeography
Remarks
如果是集合類型,這個演算法會在此執行個體包含的每一個 geography 上獨立運作。 此演算法不會修改 Point 執行個體。
這個方法會嘗試保留 LineString 執行個體的端點,但為了保留有效的結果,這項嘗試可能會失敗。
如果使用負值呼叫 Reduce(),這個方法會產生 ArgumentException。 在 Reduce() 中使用的容錯必須是正數。
Douglas-Peucker 演算法可作用於 geography 執行個體中的每個曲線或環形,且會移除起點和終點以外的所有點。 接著會從最外圍的點開始加回每個移除的點,直到沒有點超出結果的 tolerance。 若有必要,之後會將結果設為有效,因為此方法保證結果有效。
在 SQL Server 2012 (11.x) 中,此方法已擴充至 FullGlobe 執行個體。
這個方法並不精確。
Examples
下列範例會建立 LineString 執行個體,並使用 Reduce() 來簡化此執行個體。
DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'
SELECT @g.Reduce(10000).ToString()