次の方法で共有


geo_distance_2points()

適用対象: ✅Microsoft FabricAzure データ エクスプローラーAzure MonitorMicrosoft Sentinel

地球上の 2 つの地理空間座標間の最短距離をメートル単位で計算します。

構文

geo_distance_2points(p1_longitude,p1_latitude,p2_longitude,p2_latitude)

構文規則について詳しく知る。

パラメーター

件名 タイプ Required 説明
p1_longitude real ✔️ 最初の地理空間座標の経度値 (度単位)。 有効な値は [-180, +180] の範囲内です。
p1_latitude real ✔️ 最初の地理空間座標の緯度値 (度単位)。 有効な値の範囲は [-90, +90] です。
p2_longitude real ✔️ 2 番目の地理空間座標の経度値 (度単位)。 有効な値は [-180, +180] の範囲内です。
p2_latitude real ✔️ 2 番目の地理空間座標の緯度値 (度単位)。 有効な値の範囲は [-90, +90] です。

返品

地球の2つのgeography 型の*場所同士を結ぶ最短距離 (メートル単位)。 座標が無効な場合、クエリによって null 結果が生成されます。

Note

  • 地理空間座標は、WGS-84 座標参照系によって表されるものとして解釈されます。
  • 地球上での距離の測定に使う測地原点は、球体となっています。

次の例では、シアトルとロサンゼルス間の最短距離を検索します。

シアトルとロサンゼルスの間の距離。

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 のスクリーンショット。

次の例では、2 つの座標間の最短距離が 1 メートルから 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