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 instans geometri yang mewakili kumpulan semua titik yang jaraknya dari instans geometri panggilan kurang dari atau sama dengan parameter jarak.
Syntax
.BufferWithCurves ( distance )
Arguments
distance
Adalah float yang menunjukkan jarak maksimum titik yang membentuk buffer dapat berasal dari instans geometri.
Jenis Kembalian
Jenis pengembalian SQL Server: geometri
Jenis pengembalian CLR: SqlGeometry
Exceptions
Kriteria berikut akan melempar ArgumentException.
Tidak ada parameter yang diteruskan ke metode , seperti
@g.BufferWithCurves()Parameter non-numerik diteruskan ke metode , seperti
@g.BufferWithCurves('a')NULL diteruskan ke metode , seperti
@g.BufferWithCurves(NULL)
Remarks
Ilustrasi berikut menunjukkan contoh instans geometri yang dikembalikan oleh metode ini.
Tabel berikut ini memperlihatkan hasil yang dikembalikan untuk nilai jarak yang berbeda.
| Nilai jarak | Jenis Dimensi | Tipe Spasial Dikembalikan |
|---|---|---|
| jarak < 0 | Nol atau Satu | Instans GeometryCollection Kosong |
| jarak < 0 | Dua atau Lebih | Instans CurvePolygon atau GeometryCollection dengan buffer negatif. Catatan: Buffer negatif dapat membuat GeometryCollection kosong |
| jarak = 0 | Semua dimensi | Salinan instans geometri pemanggilan |
| jarak > 0 | Semua dimensi | Instans CurvePolygon atau GeometryCollection |
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).
Buffer negatif menghapus semua titik yang diapit dalam jarak batas geometri yang diberikan. Ilustrasi berikut menunjukkan buffer negatif sebagai area lingkaran yang berbayang lebih terang. Garis putus-putus adalah batas poligon asli dan garis padat adalah batas poligon yang dihasilkan.
Jika parameter string diteruskan ke metode , maka parameter tersebut akan dikonversi ke float atau akan melemparkan ArgumentException.
Examples
A. Memanggil BufferWithCurves() dengan nilai < parameter 0 pada satu instans geometri dimensi
Contoh berikut mengembalikan instans kosong GeometryCollection :
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.BufferWithCurves(-1).ToString();
B. Memanggil BufferWithCurves() dengan nilai < parameter 0 pada instans geometri dua dimensi
Contoh berikut mengembalikan instans CurvePolygon dengan buffer negatif:
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.BufferWithCurves(-1).ToString()
C. Memanggil BufferWithCurves() dengan nilai < parameter 0 yang mengembalikan GeometryCollection kosong
Contoh berikut menunjukkan apa yang terjadi ketika parameter jarak sama dengan -2:
DECLARE @g geometry = 'CURVEPOLYGON(COMPOUNDCURVE(CIRCULARSTRING(0 4, 4 0, 8 4), (8 4, 0 4)))';
SELECT @g.BufferWithCurves(-2).ToString();
Pernyataan SELECT ini mengembalikanGEOMETRYCOLLECTION EMPTY
D. Memanggil BufferWithCurves() dengan nilai parameter = 0
Contoh berikut mengembalikan salinan instans geometri panggilan:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
SELECT @g.BufferWithCurves(0).ToString();
E. Memanggil BufferWithCurves() dengan nilai parameter non-nol yang sangat kecil
Contoh berikut juga mengembalikan salinan instans geometri panggilan:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)';
DECLARE @distance float = 1e-20;
SELECT @g.BufferWithCurves(@distance).ToString();
F. Memanggil BufferWithCurves() dengan nilai > parameter 0
Contoh berikut mengembalikan instans CurvePolygon :
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.BufferWithCurves(2).ToString();
G. Meneruskan parameter string yang valid
Contoh berikut mengembalikan instans yang sama seperti yang CurvePolygon disebutkan sebelumnya, tetapi parameter string diteruskan ke metode :
DECLARE @g geometry= 'LINESTRING(3 4, 8 11)';
SELECT @g.BufferWithCurves('2').ToString();
H. Meneruskan parameter string yang tidak valid
Contoh berikut akan melemparkan kesalahan:
DECLARE @g geometry = 'LINESTRING(3 4, 8 11)'
SELECT @g.BufferWithCurves('a').ToString();
Perhatikan bahwa dua contoh sebelumnya meneruskan string literal ke BufferWithCurves() metode . Contoh pertama berfungsi karena string harfiah dapat dikonversi ke nilai numerik. Namun, contoh kedua melempar ArgumentException.
I. Memanggil BufferWithCurves() pada instans MultiPoint
Contoh berikut mengembalikan dua GeometryCollection instans dan satu CurvePolygon instans:
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();
Dua pernyataan SELECT pertama mengembalikan GeometryCollection 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 CurvePolygon karena instans buffer dari dua titik (1 1) dan (1 4) tumpang tindih.