Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Database SQL di Microsoft Fabric
Mengembalikan objek geometrik yang mewakili gabungan semua titik yang jaraknya dari instans geometri kurang dari atau sama dengan nilai yang ditentukan.
Syntax
.STBuffer ( distance )
Arguments
distance
Adalah nilai jenis float (ganda dalam .NET Framework) yang menentukan jarak dari instans geometri di mana untuk menghitung buffer.
Jenis Kembalian
Jenis pengembalian SQL Server: geometri
Jenis pengembalian CLR: SqlGeometry
Remarks
STBuffer()menghitung buffer seperti BufferWithTolerance, menentukan toleransi = jarak * .001 dan relatif = false.
Ketika jarak> 0 maka instans Polygon atau MultiPolygon dikembalikan.
Note
Karena jarak adalah float, nilai yang sangat kecil dapat sama dengan nol dalam perhitungan. Ketika ini terjadi, salinan instans geometri panggilan dikembalikan. Lihat float dan nyata (Transact-SQL)
Ketika jarak = 0, salinan instans geometri panggilan dikembalikan.
Ketika jarak< 0, maka
instans GeometryCollection kosong dikembalikan saat dimensi instans adalah 0 atau 1.
buffer negatif dikembalikan ketika dimensi instans adalah 2 atau lebih.
Note
Buffer negatif juga dapat membuat instans GeometryCollection kosong.
Buffer negatif menghapus semua titik yang diapit dalam jarak batas geometri yang diberikan.
Kesalahan antara buffer teoritis dan komputasi adalah maks(toleransi, sejauh * 1,E-7) di mana toleransi = jarak * .001. Untuk informasi selengkapnya tentang tingkatan, lihat Referensi Metode Jenis Data geometri.
Examples
A. Memanggil STBuffer() dengan parameter_value < 0 pada satu instans geometri dimensi
Contoh berikut mengembalikan instans kosong GeometryCollection :
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(-1).ToString();
B. Memanggil STBuffer() dengan parameter_value < 0 pada instans Polygon
Contoh berikut mengembalikan instans Polygon dengan buffer negatif:
DECLARE @g geometry = 'POLYGON((1 1, 1 5, 5 5, 5 1, 1 1))';
SELECT @g.STBuffer(-1).ToString();
C. Memanggil STBuffer() dengan parameter_value < 0 pada instans CurvePolygon
Contoh berikut mengembalikan instans Polygon dengan buffer negatif dari CurvePolygon instans:
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.STBuffer(-1).ToString();
Note
Instans Polygon dikembalikan alih-alih CurvePolygon instans. Untuk mengembalikan CurvePolygon instans, lihat BufferWithCurves (Jenis Data geometri)
D. Memanggil STBuffer() dengan nilai parameter negatif yang mengembalikan instans kosong
Contoh berikut menunjukkan apa yang terjadi ketika parameter jarak sama dengan -2 untuk contoh sebelumnya.
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.STBuffer(-2).ToString();
Pernyataan SELECT ini mengembalikanGEOMETRYCOLLECTION EMPTY.
E. Memanggil STBuffer() dengan parameter_value = 0
Contoh berikut mengembalikan salinan instans panggilan geometry :
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(0).ToString();
F. Memanggil STBuffer() dengan nilai parameter non-nol yang sangat kecil
Contoh berikut juga mengembalikan salinan instans panggilan geometry :
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
DECLARE @distance float = 1e-20;
SELECT @g.STBuffer(@distance).ToString();
G. Memanggil STBuffer() dengan parameter_value > 0
Contoh berikut mengembalikan instans Polygon :
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer(2).ToString();
H. Memanggil STBuffer() dengan nilai parameter string
Contoh berikut mengembalikan instans yang sama seperti yang Polygon disebutkan sebelumnya, tetapi parameter string diteruskan ke metode :
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer('2').ToString();
Contoh berikut akan melemparkan kesalahan:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.STBuffer('a').ToString();
Note
Dua contoh sebelumnya meneruskan string harfiah ke STBuffer(). Contoh pertama berfungsi karena string harfiah dapat dikonversi ke nilai numerik. Namun, contoh kedua melempar ArgumentException.
I. Memanggil STBuffer() pada instans MultiPoint
Contoh berikut mengembalikan dua MultiPolygon instans dan satu Polygon instans:
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();
Dua pernyataan SELECT pertama mengembalikan MultiPolygon instans karena jarak parameter kurang dari atau sama dengan 1/2 jarak antara dua titik (1 1) dan (1 4). Pernyataan SELECT ketiga mengembalikan instans Polygon karena instans buffer dari dua titik (1 1) dan (1 4) tumpang tindih.
Lihat Juga
BufferWithTolerance (Jenis Data geometri)
Metode OGC pada Instans Geometri