Aracılığıyla paylaş


Azaltma (coğrafya Veri Türü)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Verilen toleransla örnekte Douglas-Peucker algoritmasını çalıştırarak oluşturulan belirli coğrafya örneğinin yaklaşık değerini döndürür.

Bu coğrafya veri türü yöntemi, Bir yarım küreden daha büyük Olan FullGlobe örneklerini veya uzamsal örnekleri destekler.

Syntax

  
.Reduce ( tolerance )  

Arguments

Term Definition
tolerance Float türünde bir değerdir. tolerans , Douglas-Peucker algoritmasına giriş toleransıdır. tolerans pozitif bir sayı olmalıdır.

Dönüş Türleri

SQL Server dönüş türü: coğrafya

CLR dönüş türü: SqlGeography

Remarks

Koleksiyon türleri için bu algoritma, örneğin içerdiği her coğrafyada bağımsız olarak çalışır. Bu algoritma , Nokta örneklerini değiştirmez.

Bu yöntem LineString örneklerinin uç noktalarını korumaya çalışır, ancak geçerli bir sonucu korumak için bunu yapamaz.

Negatif bir değerle çağrılırsa Reduce() , bu yöntem bir ArgumentException oluşturur. içinde Reduce() kullanılan toleranslar pozitif sayılar olmalıdır.

Douglas-Peucker algoritması, başlangıç noktası ve bitiş noktası dışındaki tüm noktaları kaldırarak coğrafya örneğindeki her eğri veya halka üzerinde çalışır. Ardından kaldırılan her nokta, en uzak dışlama noktasından başlayarak, hiçbir nokta sonuçtan daha fazla tolerans olana kadar geri eklenir. Sonuç daha sonra gerekirse geçerli hale getirilir, geçerli bir sonuç garanti edilir.

SQL Server 2012'de (11.x), bu yöntem FullGlobe örneklerine genişletilmiştir.

Bu yöntem kesin değildir.

Examples

Aşağıdaki örnek bir LineString örnek oluşturur ve örneği basitleştirmek için kullanır Reduce() .

DECLARE @g geography = 'LineString(120 45, 120.1 45.1, 199.9 45.2, 120 46)'  
SELECT @g.Reduce(10000).ToString()  

Ayrıca Bkz.

Coğrafya Örneklerinde Genişletilmiş Yöntemler