Aracılığıyla paylaş


BufferWithTolerance (coğrafya Veri Türü)

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

Bir coğrafya örneğinden uzaklığı belirtilen değerden küçük veya buna eşit olan tüm nokta değerlerinin birleşimini temsil eden geometrik bir nesne döndürür ve bu da belirtilen toleransı sağlar.

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

  
.BufferWithTolerance ( distance, tolerance, relative )  

Arguments

uzaklık
Arabelleğin hesaplandığı coğrafya örneğinden uzaklığı belirten bir float ifadesidir.

Arabelleğin maksimum uzaklığı 0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 Dünya'nın çevresi) veya tam küreyi aşamaz.

tolerance
Arabellek uzaklığı toleransını belirten bir float ifadesidir.

Döndürülen doğrusal yaklaşık değer için ideal arabellek uzaklığındaki maksimum varyasyon tolerans değeridir.

Örneğin, bir noktanın ideal arabellek uzaklığı bir dairedir, ancak bu uzaklık bir çokgen tarafından yaklaşık olmalıdır. Tolerans ne kadar küçük olursa, çokgen o kadar fazla noktaya sahip olur. Bu sonuç sonucun karmaşıklığını artırır, ancak hatayı en aza indirir.

Minimum sınır, mesafenin yüzde 0,1'idir ve bundan küçük toleranslar en düşük sınıra yuvarlanacaktır.

relative
Tolerans değerinin göreli mi yoksa mutlak mı olduğunu belirten bir bittir. Değer 'DOĞRU' veya 1 ise tolerans görelidir. Bu değer , tolerans parametresinin ürünüdür ve elipoidin angular uzantısı * ekvatoral yarıçapıdır. Değer 'YANLIŞ' veya 0 ise tolerans mutlaktır. Bu tolerans değeri, döndürülen doğrusal yaklaşık değer için ideal arabellek uzaklığındaki mutlak maksimum varyasyondur.

Dönüş Türleri

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

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

Remarks

Bu yöntem, uzaklık bir sayı (NAN) değilse veya mesafe pozitif veya negatif sonsuzsa bir ArgumentException oluşturur. Bu yöntem, tolerans bir sayı (NaN), negatif veya pozitif veya negatif sonsuzluk değil sıfır (0) ise bir ArgumentException da oluşturur.

STBuffer() belirli durumlarda bir FullGlobe örneği döndürür; örneğin, STBuffer() arabellek uzaklığı ekvatordan kutuplara olan uzaklık değerinden büyük olduğunda iki kutupta bir FullGlobe örneği döndürür.

Bu yöntem, arabellek uzaklığı aşağıdaki sınırlamayı aştığında FullGlobe örneklerinde bir ArgumentException oluşturur:

0,999 * π * minorAxis * minorAxis / majorAxis (~0,999 * 1/2 Dünya çevresi)

Teorik ve hesaplanan arabellek arasındaki hata max(tolerans, kapsamlar * 1.E-7) ve tolerans parametresinin değeridir. Kapsamlar hakkında daha fazla bilgi için bkz . Coğrafya Veri Türü Yöntemi Başvurusu.

Bu yöntem kesin değildir.

Examples

Aşağıdaki örnek bir Point örnek oluşturur ve çevresinde kaba bir arabellek elde etmek için kullanır BufferWithTolerance() .

DECLARE @g geography;  
SET @g = geography::STGeomFromText('POINT(-122.34900 47.65100)', 4326);  
SELECT @g.BufferWithTolerance(1, .5, 0).ToString();  

Ayrıca Bkz.

STBuffer (coğrafya Veri Türü)
Coğrafya Örneklerinde Genişletilmiş Yöntemler