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ı
Geometri örneğinden uzaklığı belirtilen değerden küçük veya buna eşit olan tüm noktaların birleşimini temsil eden geometrik bir nesne döndürür.
Syntax
.STBuffer ( distance )
Arguments
uzaklık
Arabelleğin hesaplandığı geometri örneğinden uzaklığı belirten float (.NET Framework'te çift) türünde bir değerdir.
Dönüş Türleri
SQL Server dönüş türü: geometri
CLR dönüş türü: SqlGeometry
Remarks
STBuffer()
BufferWithTolerance gibi bir arabellek hesaplayarak tolerans = uzaklık * .001 ve göreli = yanlış değerlerini belirtir.
Mesafe> 0 olduğunda bir Çokgen veya MultiPolygon örneği döndürülür.
Note
Uzaklık bir float olduğundan, çok küçük bir değer hesaplamalarda sıfıra eşitlenebilir. Bu durumda, çağıran geometri örneğinin bir kopyası döndürülür. Bkz . kayan ve gerçek (Transact-SQL)
Uzaklık = 0 olduğunda, çağıran geometri örneğinin bir kopyası döndürülür.
Mesafe< 0 olduğunda,
Örneğin boyutları 0 veya 1 olduğunda boş bir GeometryCollection örneği döndürülür.
örneğin boyutları 2 veya daha fazla olduğunda negatif bir arabellek döndürülür.
Note
Negatif arabellek boş bir GeometryCollection örneği de oluşturabilir.
Negatif arabellek, geometri sınırının belirli bir uzaklığında bulunan tüm noktaları kaldırır.
Teorik ve hesaplanan arabellek arasındaki hata max(tolerans, kapsamlar * 1.E-7) ve tolerans = uzaklık * .001'dir. Kapsamlar hakkında daha fazla bilgi için bkz. geometri Veri Türü Yöntemi Başvurusu.
Examples
A. Tek boyutlu geometri örneğinde parameter_value < 0 ile STBuffer() çağırma
Aşağıdaki örnek boş GeometryCollection bir örnek döndürür:
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(-1).ToString();
B. Çokgen örnekte parameter_value < 0 ile STBuffer() çağırma
Aşağıdaki örnek negatif arabelleğe sahip bir Polygon örnek döndürür:
DECLARE @g geometry = 'POLYGON((1 1, 1 5, 5 5, 5 1, 1 1))';
SELECT @g.STBuffer(-1).ToString();
C. Bir CurvePolygon örneğinde parameter_value < 0 ile STBuffer() çağırma
Aşağıdaki örnek, bir Polygon örnekten 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.STBuffer(-1).ToString();
Note
Örnek Polygon yerine bir CurvePolygon örnek döndürülür. Örnek CurvePolygon döndürmek için bkz . BufferWithCurves (geometri Veri Türü)
D. Boş bir örnek döndüren negatif parametre değeriyle STBuffer() çağırma
Aşağıdaki örnek, önceki örnek için uzaklık parametresi -2 eşit olduğunda ne olduğunu gösterir.
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.STBuffer(-2).ToString();
Bu SELECT deyimi bir GEOMETRYCOLLECTION EMPTY.
E. parameter_value = 0 ile STBuffer() çağırma
Aşağıdaki örnek, çağıran geometry örneğin bir kopyasını döndürür:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(0).ToString();
F. StBuffer() öğesini sıfır olmayan ve son derece küçük bir parametre değeriyle çağırma
Aşağıdaki örnek, çağrı geometry ö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.STBuffer(@distance).ToString();
G. parameter_value > 0 ile STBuffer() çağırma
Aşağıdaki örnek bir Polygon örnek döndürür:
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(2).ToString();
H. Dize parametre değeriyle STBuffer() çağırma
Aşağıdaki örnek, daha önce belirtildiği gibi aynı Polygon örneği döndürür, ancak yöntemine bir dize parametresi geçirilir:
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer('2').ToString();
Aşağıdaki örnek bir hata oluşturur:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer('a').ToString();
Note
Önceki iki örnek için bir dize değişmez değeri geçirildi STBuffer(). İ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 STBuffer() çağırma
Aşağıdaki örnek iki MultiPolygon örnek ve bir Polygon örnek döndürür:
DECLARE @g geometry = 'MULTIPOINT((1 1),(1 4))';
SELECT @g.STBuffer(1).ToString();
SELECT @g.STBuffer(1.5).ToString();
SELECT @g.STBuffer(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 MultiPolygon 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 Polygon örnek döndürür.
Ayrıca Bkz.
BufferWithTolerance (geometri Veri Türü)
Geometri Örnekleri üzerinde