Freigeben über


geo_distance_2points()

Berechnet den kürzesten Abstand in Metern zwischen zwei Geokoordinaten auf der Erde.

Syntax

geo_distance_2points(, p1_longitude, p1_latitude, p2_longitudep2_latitude)

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Typ Erforderlich BESCHREIBUNG
p1_longitude real ✔️ Der Längengradwert in Grad der ersten Geokoordinate. Ein gültiger Wert liegt im Bereich [-180, +180].
p1_latitude real ✔️ Der Breitengradwert in Grad der ersten Geokoordinate. Ein gültiger Wert liegt im Bereich [-90, +90].
p2_longitude real ✔️ Der Längengradwert in Grad der zweiten Geokoordinate. Ein gültiger Wert liegt im Bereich [-180, +180].
p2_latitude real ✔️ Der Breitengradwert in Grad der zweiten Geokoordinate. Ein gültiger Wert liegt im Bereich [-90, +90].

Gibt zurück

Die kürzeste Entfernung in Metern zwischen zwei geografischen Orten auf der Erde. Wenn die Koordinaten ungültig sind, erzeugt die Abfrage ein NULL-Ergebnis.

Hinweis

Beispiele

Im folgenden Beispiel wird die kürzeste Entfernung zwischen Seattle und Los Angeles ermittelt.

Entfernung zwischen Seattle und Los Angeles.

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

Ausgabe

distance_in_meters
1546754.35197381

Im folgenden Beispiel wird eine Näherung des kürzesten Pfads von Seattle nach London gefunden. Die Linie besteht aus Koordinaten entlang des LineStrings und innerhalb von 500 Metern entfernung.

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)

Ausgabe

Screenshot: LineString von Seattle nach London.

Im folgenden Beispiel werden alle Zeilen ermittelt, in denen der kürzeste Abstand zwischen zwei Koordinaten zwischen einem Meter und 11 Metern liegt.

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

Ausgabe

distance_1_to_11m
10.5723100154958
7.92153588248414

Im folgenden Beispiel wird aufgrund der ungültigen Koordinateneingabe ein NULL-Ergebnis zurückgegeben.

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

Ausgabe

distance