Bagikan melalui


geo_point_buffer()

Menghitung poligon yang berisi semua titik dalam radius tertentu dari titik di Bumi.

Sintaks

geo_point_buffer(toleransi radius , garis lintang ,bujur, )

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
Bujur real ✔️ Nilai bujur koordinat geospasial dalam derajat. Nilai valid adalah bilangan real dan dalam rentang [-180, +180].
lintang real ✔️ Nilai lintang koordinat geospasial dalam derajat. Nilai valid adalah bilangan real dan dalam rentang [-90, +90].
radius real ✔️ Radius buffer dalam meter. Nilai valid harus positif.
Toleransi real Mendefinisikan toleransi dalam meter yang menentukan berapa banyak poligon yang dapat menyimpang dari radius ideal. Jika tidak ditentukan, nilai default 10 akan digunakan. Toleransi tidak boleh lebih rendah dari 0,0001% dari radius. Menentukan toleransi yang lebih besar dari radius menurunkan toleransi ke nilai terbesar yang mungkin di bawah radius.

Mengembalikan

Poligon di sekitar titik input. Jika koordinat atau radius atau toleransi tidak valid, kueri menghasilkan hasil null.

Catatan

  • Koordinat geospasial diinterpretasikan sebagaimana diwakili oleh sistem referensi koordinat WGS-84.
  • Datum geodetik yang digunakan untuk mengukur jarak di Bumi adalah bola.

Contoh

Kueri berikut menghitung poligon di sekitar koordinat [-115.1745008278, 36.1497251277], dengan radius 20km.

print buffer = geo_point_buffer(-115.1745008278, 36.1497251277, 20000)
Buffer
{"type": "Polygon","coordinates": [ ... ]}

Kueri berikut menghitung buffer di sekitar setiap titik dan hasil unifies

datatable(longitude:real, latitude:real, radius:real)
[
    real(-80.3212217992616), 25.268683367546604, 5000,
    real(-80.81717403605833), 24.82658441221962, 3000
]
| project buffer = geo_point_buffer(longitude, latitude, radius)
| summarize polygons = make_list(buffer)
| project result = geo_union_polygons_array(polygons)
hasil
{"type": "MultiPolygon","coordinates": [ ... ]}

Contoh berikut mengembalikan true, karena titik yang tidak valid.

print result = isnull(geo_point_buffer(200, 1,0.1))
hasil
Benar

Contoh berikut mengembalikan true, karena radius yang tidak valid.

print result = isnull(geo_point_buffer(10, 10, -1))
hasil
Benar