BufferWithCurves (Tipe Data geometri)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Mengembalikan instans geometri yang mewakili kumpulan semua titik yang jaraknya dari instans geometri panggilan kurang dari atau sama dengan parameter jarak.

Sintaksis

.BufferWithCurves ( 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 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

Pengecualian

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)

Keterangan

Ilustrasi berikut menunjukkan contoh instans geometri yang dikembalikan oleh metode ini.

Diagram showing an example of a geometry instance returned by this method.

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

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).

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.

Contoh

J. 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.

Lihat Juga

Metode yang Diperluas pada Instans Geometri