共用方式為


geo_distance_2points()

適用於:✅Microsoft網狀架構Azure 數據✅總管 Azure 監視器✅Microsoft Sentinel

計算地球上兩個地理空間座標之間的最短距離。

語法

geo_distance_2points(,p1_longitude p1_latitude,p2_longitude p2_latitude,)

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
p1_longitude real ✔️ 第一個地理空間座標的經度值。 有效的值位於範圍 [-180, +180]。
p1_latitude real ✔️ 第一個地理空間座標的緯度值。 有效的值位於範圍 [-90, +90]。
p2_longitude real ✔️ 第二個地理空間座標的經度值。 有效的值位於範圍 [-180, +180]。
p2_latitude real ✔️ 第二個地理空間座標的緯度值。 有效的值位於範圍 [-90, +90]。

傳回

地球上兩個地理位置之間的最短距離,以公尺為單位。 如果座標無效,查詢會產生 Null 結果。

注意

範例

下列範例會尋找西雅圖和洛杉磯之間的最短距離。

西雅圖和洛杉磯之間的距離。

print distance_in_meters = geo_distance_2points(-122.407628, 47.578557, -118.275287, 34.019056)

輸出

distance_in_meters
1546754.35197381

下列範例會尋找從西雅圖到倫敦最短路徑的近似值。 該線由LineString和500公尺內的座標組成。

range i from 1 to 1000000 step 1
| project lng = rand() * real(-122), lat = rand() * 90
| where lng between(real(-122) .. 0) and lat between(47 .. 90)
| where geo_distance_point_to_line(lng,lat,dynamic({"type":"LineString","coordinates":[[-122,47],[0,51]]})) < 500
| render scatterchart with (kind=map)

輸出

西雅圖至倫敦LineString的螢幕快照。

下列範例會尋找兩個座標之間的最短距離介於一公尺到11公尺之間的所有數據列。

StormEvents
| extend distance_1_to_11m = geo_distance_2points(BeginLon, BeginLat, EndLon, EndLat)
| where distance_1_to_11m between (1 .. 11)
| project distance_1_to_11m

輸出

distance_1_to_11m
10.5723100154958
7.92153588248414

下列範例會傳回 Null 結果,因為座標輸入無效。

print distance = geo_distance_2points(300,1,1,1)

輸出

distance