Aracılığıyla paylaş


BufferWithCurves (geometri Veri Türü)

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

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

Syntax

.BufferWithCurves ( distance )  

Arguments

uzaklık
Arabelleği oluşturan noktaların geometri örneğinden olabileceği maksimum uzaklığı gösteren bir float değeridir.

Dönüş Türleri

SQL Server dönüş türü: geometri

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

Exceptions

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

  • Yöntemine parametre geçirilmemesi, ö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 çizimde, bu yöntem tarafından döndürülen geometri örneğinin bir örneği gösterilmektedir.

Bu yöntem tarafından döndürülen geometri örneğini gösteren diyagram.

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 geometri ö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 geometri örneğinin bir kopyası döndürülür. Bkz . kayan ve gerçek (Transact-SQL).

Negatif arabellek, geometri sınırının belirli bir uzaklığında bulunan tüm noktaları kaldırır. Aşağıdaki çizimde, dairenin açık gölgeli alanı olarak negatif bir arabellek gösterilmektedir. Noktalı çizgi özgün çokgenin sınırı, düz çizgi ise sonuç çokgeninin sınırıdır.

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

Examples

A. Tek boyutlu geometri örneğinde parametre değeri < 0 olan BufferWithCurves() çağırma

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

 DECLARE @g geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.BufferWithCurves(-1).ToString(); 

B. İki boyutlu geometri ö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 geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))'; 
 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 geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))'; 
 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 geometri örneğinin bir kopyasını döndürür:

 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'; 
 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 geometri örneğinin bir kopyasını da döndürür:

 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'; 
 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 geometry= 'LINESTRING(3 4, 8 11)'; 
 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 geometry= 'LINESTRING(3 4, 8 11)'; 
 SELECT @g.BufferWithCurves('2').ToString();

H. Geçersiz bir dize parametresi geçirme

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

 DECLARE @g geometry = 'LINESTRING(3 4, 8 11)' 
 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.

I. MultiPoint örneğinde BufferWithCurves() çağırma

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

 DECLARE @g geometry = 'MULTIPOINT((1 1),(1 4))'; 
 SELECT @g.BufferWithCurves(1).ToString(); 
 SELECT @g.BufferWithCurves(1.5).ToString(); 
 SELECT @g.BufferWithCurves(1.6).ToString();

parametre uzaklığı iki nokta (1 1) ile (1 4) arasındaki uzaklık 1/2'den küçük veya buna eşit olduğundan, ilk iki GeometryCollection deyimi bir örnek döndürür. İki noktanın (1 1) ve (1 4) arabelleğe alınan örnekleri çakıştığı için üçüncü SELECT deyimi bir CurvePolygon örnek döndürür.

Ayrıca Bkz.

Geometri Örneklerinde Genişletilmiş Yöntemler