Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft 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.
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.