Udostępnij za pośrednictwem


geo_distance_2points()

Dotyczy: ✅Microsoft Fabric

Oblicza najkrótszą odległość w metrach między dwiema współrzędnymi geoprzestrzennymi na Ziemi.

Składnia

geo_distance_2points( , p1_longitude, p1_latitude, p2_longitude, p2_latitude[ use_spheroid ])

Dowiedz się więcej na temat konwencji składni.

Parametry

Nazwisko Type Wymagania opis
p1_longitude real ✔️ Wartość długości geograficznej w stopniach pierwszej współrzędnej geoprzestrzennej. Prawidłowa wartość znajduje się w zakresie [-180, +180].
p1_latitude real ✔️ Wartość szerokości geograficznej w stopniach pierwszej współrzędnej geoprzestrzennej. Prawidłowa wartość znajduje się w zakresie [-90, +90].
p2_longitude real ✔️ Wartość długości geograficznej w stopniach drugiej współrzędnej geoprzestrzennej. Prawidłowa wartość znajduje się w zakresie [-180, +180].
p2_latitude real ✔️ Wartość szerokości geograficznej w stopniach drugiej współrzędnej geoprzestrzennej. Prawidłowa wartość znajduje się w zakresie [-90, +90].
use_spheroid bool Jeśli false użyje sfery jako danych geodetycznych do pomiaru odległości. Jeśli true będzie mierzyć odległość przy użyciu spheroid. Jeśli nie określono, zostanie użyta wartość false domyślna.

Zwraca

Najkrótsza odległość, w metrach, między dwoma lokalizacjami geograficznymi na Ziemi. Jeśli współrzędne są nieprawidłowe, zapytanie generuje wynik o wartości null.

Uwaga

  • Współrzędne geoprzestrzenne są interpretowane jako reprezentowane przez system odniesienia współrzędnych WGS-84 .
  • Większość aplikacji powinna mierzyć odległość przy użyciu sfery ('use_spheroid' = false), która jest bardziej wydajna. Jeśli potrzebna jest dodatkowa precyzja, opcja "use_spheroid" może być ustawiona na wartość "true", aby uzyskać dodatkową precyzję, co może być bardziej istotne w przypadku większych odległości, co może mieć wpływ na krzywiznę ziemi.

Przykłady

Poniższy przykład znajduje najkrótszą odległość między Seattle i Los Angeles.

Odległość między Seattle a Los Angeles.

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

Wyjście

distance_in_meters
1546754.35197381

Poniższy przykład znajduje przybliżenie najkrótszej ścieżki z Seattle do Londynu. Linia składa się ze współrzędnych wzdłuż linii LineString i w odległości 500 metrów od niej.

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)

Wyjście

Zrzut ekranu przedstawiający seattle do London LineString.

W poniższym przykładzie znajduje się wszystkie wiersze, w których najkrótsza odległość między dwiema współrzędnymi wynosi od jednego metra do 11 metrów.

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

Wyjście

distance_1_to_11m
10.5723100154958
7.92153588248414

Poniższy przykład zwraca wynik o wartości null z powodu nieprawidłowych danych wejściowych współrzędnych.

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

Wyjście

odległość