Sdílet prostřednictvím


geo_distance_2points()

Platí pro: ✅Microsoft FabricAzure Data Explorer✅Azure MonitorMicrosoft Sentinel

Vypočítá nejkratší vzdálenost v metrech mezi dvěma geoprostorovými souřadnicemi na Zemi.

Syntaxe

geo_distance_2points(,p1_longitude p1_latitude,p2_longitude p2_latitude,)

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Type Požadováno Popis
p1_longitude real ✔️ Hodnota délky ve stupních první geoprostorové souřadnice. Platná hodnota je v rozsahu [-180, +180].
p1_latitude real ✔️ Hodnota zeměpisné šířky ve stupních první geoprostorové souřadnice. Platná hodnota je v rozsahu [-90, +90].
p2_longitude real ✔️ Hodnota délky ve stupních druhé geoprostorové souřadnice. Platná hodnota je v rozsahu [-180, +180].
p2_latitude real ✔️ Hodnota zeměpisné šířky ve stupních druhé geoprostorové souřadnice. Platná hodnota je v rozsahu [-90, +90].

Návraty

Nejkratší vzdálenost v metrech mezi dvěma geografickými umístěními na Zemi. Pokud jsou souřadnice neplatné, dotaz vytvoří výsledek null.

Poznámka:

  • Geoprostorové souřadnice jsou interpretovány jako reprezentované referenčním systémem souřadnic WGS-84 .
  • Geodetické datum použité k měření vzdálenosti na Zemi je sféra.

Příklady

Následující příklad najde nejkratší vzdálenost mezi Seattlem a Los Angeles.

Vzdálenost mezi Seattlem a Los Angeles.

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

Výstup

distance_in_meters
1546754.35197381

Následující příklad najde aproximaci nejkratší cesty ze Seattlu do Londýna. Čára se skládá ze souřadnic podél linestringu a do 500 metrů od ní.

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)

Výstup

Snímek obrazovky s řetězcem LineString v Seattlu do Londýna

Následující příklad najde všechny řádky, ve kterých je nejkratší vzdálenost mezi dvěma souřadnicemi mezi jedním měřičem a 11 metrů.

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

Výstup

distance_1_to_11m
10.5723100154958
7.92153588248414

Následující příklad vrátí výsledek null z důvodu neplatného vstupu souřadnic.

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

Výstup

vzdálenost