Bagikan melalui


geo_point_in_circle()

Menghitung apakah koordinat geospasial berada di dalam lingkaran di Bumi.

Sintaks

geo_point_in_circle(, c_radius pc_latitude , pc_longitude p_latitude p_latitude p_longitude, , )

Pelajari selengkapnya tentang konvensi sintaksis.

Parameter

Nama Tipe Wajib Deskripsi
p_longitude real ✔️ Nilai bujur koordinat geospasial dalam derajat. Nilai valid adalah bilangan real dan dalam rentang [-180, +180].
p_latitude real ✔️ Nilai lintang koordinat geospasial dalam derajat. Nilai valid adalah bilangan real dan dalam rentang [-90, +90].
pc_longitude real ✔️ Nilai bujur koordinat geospasial pusat lingkaran dalam derajat. Nilai valid adalah bilangan real dan dalam rentang [-180, +180].
pc_latitude real ✔️ nilai lintang koordinat geospasial pusat lingkaran dalam derajat. Nilai valid adalah bilangan real dan dalam rentang [-90, +90].
c_radius real ✔️ Radius lingkaran dalam meter. Nilai valid harus positif.

Mengembalikan

Menunjukkan apakah koordinat geospasial berada di dalam lingkaran. Jika koordinat atau lingkaran 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.
  • Lingkaran adalah tutup bulat di Bumi. Radius tutup diukur di sepanjang permukaan bola.

Contoh

Contoh berikut menemukan semua tempat di area yang ditentukan oleh lingkaran berikut: Radius 18 km, tengah di koordinat [-122.317404, 47.609119].

Cuplikan layar peta dengan tempat-tempat dalam jarak 18 km dari Seattle.

datatable(longitude:real, latitude:real, place:string)
[
    real(-122.317404), 47.609119, 'Seattle',                   // In circle 
    real(-123.497688), 47.458098, 'Olympic National Forest',   // In exterior of circle  
    real(-122.201741), 47.677084, 'Kirkland',                  // In circle
    real(-122.443663), 47.247092, 'Tacoma',                    // In exterior of circle
    real(-122.121975), 47.671345, 'Redmond',                   // In circle
]
| where geo_point_in_circle(longitude, latitude, -122.317404, 47.609119, 18000)
| project place

Hasil

tempat
Seattle
Kirkland
Jakarta

Contoh berikut menemukan peristiwa badai di Orlando. Peristiwa difilter menurut 100 km dalam koordinat Orlando, dan diagregasi berdasarkan jenis peristiwa dan hash.

StormEvents
| project BeginLon, BeginLat, EventType
| where geo_point_in_circle(BeginLon, BeginLat, real(-81.3891), 28.5346, 1000 * 100)
| summarize count() by EventType, hash = geo_point_to_s2cell(BeginLon, BeginLat)
| project geo_s2cell_to_central_point(hash), EventType, count_
| render piechart with (kind=map) // map pie rendering available in Kusto Explorer desktop

Hasil

Cuplikan layar peristiwa badai di Orlando dirender dengan titik bagan pai di peta.

Contoh berikut menunjukkan pengambilan taksi kota New York dalam jarak 10 meter dari lokasi tertentu. Pickup yang relevan diagregasi dengan hash.

nyc_taxi
| project pickup_longitude, pickup_latitude
| where geo_point_in_circle( pickup_longitude, pickup_latitude, real(-73.9928), 40.7429, 10)
| summarize by hash = geo_point_to_s2cell(pickup_longitude, pickup_latitude, 22)
| project geo_s2cell_to_central_point(hash)
| render scatterchart with (kind = map)

Hasil

Cuplikan layar peta yang dirender memperlihatkan pengambilan taksi kota New York terdekat, seperti yang didefinisikan dalam kueri.

Contoh berikut akan mengembalikan true.

print in_circle = geo_point_in_circle(-122.143564, 47.535677, -122.100896, 47.527351, 3500)

Hasil

in_circle
benar

Contoh berikut akan mengembalikan false.

print in_circle = geo_point_in_circle(-122.137575, 47.630683, -122.100896, 47.527351, 3500)

Hasil

in_circle
salah

Contoh berikut menampilkan hasil null karena input koordinat yang tidak valid.

print in_circle = geo_point_in_circle(200, 1, 1, 1, 1)

Hasil

in_circle

Contoh berikut mengembalikan hasil null karena input radius lingkaran yang tidak valid.

print in_circle = geo_point_in_circle(1, 1, 1, 1, -1)

Hasil

in_circle