STBuffer (Tipe Data geometri)
Berlaku untuk: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Mengembalikan objek geometrik yang mewakili gabungan semua titik yang jaraknya dari instans geometri kurang dari atau sama dengan nilai yang ditentukan.
Sintaksis
.STBuffer ( distance )
Catatan
Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.
Argumen
jarak
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
Keterangan
STBuffer()
menghitung buffer seperti BufferWithTolerance, menentukan toleransi = jarak * .001 dan relatif = false.
Ketika jarak> 0 maka instans Polygon atau MultiPolygon dikembalikan.
Catatan
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.
Catatan
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.
Contoh
J. 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();
Catatan
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();
Catatan
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