BufferWithCurves (Tipe Data geografi)

Berlaku untuk: SQL Server (semua versi yang didukung) Azure SQL Database Azure SQL Managed Instance

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

Sintaks

  
.BufferWithCurves ( distance )  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 dan yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

Jarak
Adalah float yang menunjukkan jarak maksimum bahwa titik yang membentuk buffer dapat berasal dari instans geografi.

Jenis Pengembalian

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, salinan instans geografi panggilan dikembalikan.

Jika parameter string diteruskan ke metode , maka parameter tersebut akan dikonversi ke float atau akan melempar ArgumentException.

Contoh

A. 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 mengembalikan GEOMETRYCOLLECTION 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 bukan 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 literal dapat dikonversi menjadi nilai numerik. Namun, contoh kedua melempar ArgumentException.

Lihat juga

Metode yang Diperluas pada Instans Geografi
BufferWithCurves (Tipe Data geometri)