Aracılığıyla paylaş


BufferWithCurves (coğrafya Veri Türü)

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

Çağıran coğrafya örneğinden uzaklığı distance parametresinden küçük veya buna eşit olan tüm noktaların kümesini temsil eden bir coğrafya örneği döndürür.

Syntax

  
.BufferWithCurves ( distance )  

Arguments

uzaklık
Arabelleği oluşturan noktaların coğrafya örneğinden uzaklık üst sınırını gösteren bir float değeridir.

Dönüş Türleri

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

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

Exceptions

Aşağıdaki ölçütler bir ArgumentException oluşturur.

  • Yöntemine herhangi bir parametre geçirilmemiş, örneğin @g.BufferWithCurves()

  • Yöntemine sayısal olmayan bir parametre geçirilir, örneğin: @g.BufferWithCurves('a')

  • NULL yöntemine geçirilir, örneğin @g.BufferWithCurves(NULL)

Remarks

Aşağıdaki tabloda farklı uzaklık değerleri için döndürülen sonuçlar gösterilmektedir.

mesafe Değeri Tip Boyutları Döndürülen Uzamsal Tür
mesafe < 0 Sıfır veya Bir Boş GeometryCollection örneği
mesafe < 0 İki veya Daha Fazla Negatif arabelleğe sahip bir CurvePolygon veya GeometryCollection örneği.

Not: Negatif arabellek boş bir GeometryCollection oluşturabilir
uzaklık = 0 Tüm boyutlar Çağırma coğrafya örneğinin kopyası
mesafe > 0 Tüm boyutlar CurvePolygon veya GeometryCollection örneği

Note

Uzaklıkbir float olduğundan, çok küçük bir değer hesaplamalarda sıfıra eşitlenebilir. Bu gerçekleştiğinde, çağıran coğrafya örneğinin bir kopyası döndürülür.

Yöntemine bir dize parametresi geçirilirse, float'a dönüştürülür veya bir ArgumentExceptionoluşturur.

Examples

A. Tek boyutlu coğrafya örneğinde 0 parametre değeriyle < BufferWithCurves() çağırma

Aşağıdaki örnek boş GeometryCollection bir örnek döndürür:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(-1).ToString();

B. İki boyutlu coğrafya örneğinde parametre değeri < 0 olan BufferWithCurves() çağırma

Aşağıdaki örnek negatif arabelleğe sahip bir CurvePolygon örnek döndürür:

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-1).ToString()

C. Boş bir GeometryCollection döndüren 0 parametre değeriyle < BufferWithCurves() çağırma

Aşağıdaki örnekte , distance parametresi -2 değerine eşit olduğunda ne olduğu gösterilmektedir:

DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';  
SELECT @g.BufferWithCurves(-2).ToString();

Bu SELECT deyimi döndürülüyor GEOMETRYCOLLECTION EMPTY

D. Parametre değeri = 0 olan BufferWithCurves() çağrısı

Aşağıdaki örnek, çağıran coğrafya örneğinin bir kopyasını döndürür:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(0).ToString();

E. BufferWithCurves() öğesini sıfır olmayan ve son derece küçük bir parametre değeriyle çağırma

Aşağıdaki örnek, çağıran coğrafya örneğinin bir kopyasını da döndürür:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
DECLARE @distance float = 1e-20;  
SELECT @g.BufferWithCurves(@distance).ToString();

F. BufferWithCurves() parametresini 0 parametre değeriyle > çağırma

Aşağıdaki örnek bir CurvePolygon örnek döndürür:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves(2).ToString();

G. Geçerli bir dize parametresi geçirme

Aşağıdaki örnek, daha önce belirtildiği gibi aynı CurvePolygon örneği döndürür, ancak yöntemine bir dize parametresi geçirilir:

DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';  
SELECT @g.BufferWithCurves('2').ToString();

H. Geçersiz bir dize parametresi geçirme

Aşağıdaki örnek bir hata oluşturur:

DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)'  
SELECT @g.BufferWithCurves('a').ToString();

Önceki iki örnekte yöntemine bir dize değişmez değeri geçirildiğini BufferWithCurves() unutmayın. İlk örnek çalışır çünkü dize değişmez değeri sayısal bir değere dönüştürülebilir. Ancak, ikinci örnek bir ArgumentExceptionoluşturur.

Ayrıca Bkz.

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