Condividi tramite


geo_distance_2points()

Si applica a: ✅Microsoft Fabric✅Azure Esplora dati Azure MonitorMicrosoft Sentinel

Calcola la distanza più breve in metri tra due coordinate geospaziali sulla Terra.

Sintassi

geo_distance_2points(p1_longitude p1_latitude p2_longitudep2_latitude,,,)

Altre informazioni sulle convenzioni di sintassi.

Parametri

Nome Digita Obbligatorio Descrizione
p1_longitude real ✔️ Valore della longitudine in gradi della prima coordinata geospaziale. Un valore valido è compreso nell'intervallo [-180, +180].
p1_latitude real ✔️ Valore della latitudine in gradi della prima coordinata geospaziale. Un valore valido è compreso nell'intervallo [-90, +90].
p2_longitude real ✔️ Valore della longitudine in gradi della seconda coordinata geospaziale. Un valore valido è compreso nell'intervallo [-180, +180].
p2_latitude real ✔️ Valore della latitudine in gradi della seconda coordinata geospaziale. Un valore valido è compreso nell'intervallo [-90, +90].

Valori restituiti

La distanza più breve, in metri, tra due posizioni geografiche sulla Terra. Se le coordinate non sono valide, la query produce un risultato Null.

Nota

Esempi

L'esempio seguente trova la distanza più breve tra Seattle e Los Angeles.

Distanza tra Seattle e Los Angeles.

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

Output

distance_in_meters
1546754.35197381

L'esempio seguente trova un'approssimazione del percorso più breve da Seattle a Londra. La linea è costituita da coordinate lungo lineString e entro 500 metri da essa.

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)

Output

Screenshot di Seattle to London LineString.

Nell'esempio seguente vengono trovate tutte le righe in cui la distanza più breve tra due coordinate è compresa tra un metro e 11 metri.

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

Output

distance_1_to_11m
10.5723100154958
7.92153588248414

Nell'esempio seguente viene restituito un risultato Null a causa dell'input di coordinate non valido.

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

Output

distance