BufferWithCurves (Jenis Data geografi)
Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance
Mengembalikan instans geografi yang mewakili kumpulan semua titik yang jaraknya dari instans geografi 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 geografi.
Jenis Kembalian
Jenis pengembalian SQL Server: geografi
Jenis pengembalian CLR: SqlGeography
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
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 geografi 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, maka salinan instans geografi panggilan dikembalikan.
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 instans geografi satu dimensi
Contoh berikut mengembalikan instans kosong GeometryCollection
:
DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.BufferWithCurves(-1).ToString();
B. Memanggil BufferWithCurves() dengan nilai < parameter 0 pada instans geografi dua dimensi
Contoh berikut mengembalikan instans CurvePolygon
dengan buffer negatif:
DECLARE @g geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
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 geography = 'CURVEPOLYGON(CIRCULARSTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653))';
SELECT @g.BufferWithCurves(-2).ToString();
Pernyataan SELECT ini mengembalikanGEOMETRYCOLLECTION EMPTY
D. Memanggil BufferWithCurves() dengan nilai parameter = 0
Contoh berikut mengembalikan salinan instans geografi panggilan:
DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.BufferWithCurves(0).ToString();
E. Memanggil BufferWithCurves() dengan nilai parameter non-nol yang sangat kecil
Contoh berikut juga mengembalikan salinan instans geografi panggilan:
DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
DECLARE @distance float = 1e-20;
SELECT @g.BufferWithCurves(@distance).ToString();
F. Memanggil BufferWithCurves() dengan nilai > parameter 0
Contoh berikut mengembalikan instans CurvePolygon
:
DECLARE @g geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
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 geography= 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)';
SELECT @g.BufferWithCurves('2').ToString();
H. Meneruskan parameter string yang tidak valid
Contoh berikut akan melemparkan kesalahan:
DECLARE @g geography = 'LINESTRING(-122.358 47.653, -122.348 47.649, -122.348 47.658, -122.358 47.658, -122.358 47.653)'
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
.
Lihat Juga
Metode yang Diperluas pada Instans Geografi
BufferWithCurves (Tipe Data geometri)
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk