Freigeben über


geo_distance_2points()

Gilt für: ✅Microsoft Fabric

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

Syntax

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

Erfahren Sie mehr über Syntaxkonventionen.

Parameter

Name Type Erforderlich Beschreibung
p1_longitude real ✔️ Der Längengradwert in Grad der ersten geospatialen Koordinate. Ein gültiger Wert befindet sich im Bereich [-180, +180].
p1_latitude real ✔️ Der Breitengradwert in Grad der ersten geospatialen Koordinate. Ein gültiger Wert befindet sich im Bereich [-90, +90].
p2_longitude real ✔️ Der Längengradwert in Grad der zweiten geospatialen Koordinate. Ein gültiger Wert befindet sich im Bereich [-180, +180].
p2_latitude real ✔️ Der Breitengradwert in Grad der zweiten geospatialen Koordinate. Ein gültiger Wert befindet sich im Bereich [-90, +90].
use_spheroid bool Wenn false eine Kugel als geodetisches Datum zum Messen des Abstands verwendet wird. Wenn true der Abstand mithilfe von Spheroid gemessen wird. Wenn nicht angegeben, wird der Standardwert false verwendet.

Gibt zurück

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

Hinweis

  • Die Geospatialkoordinaten werden durch das WGS-84-Koordinatenverweissystem interpretiert.
  • Die meisten Anwendungen sollten die Entfernung mithilfe von Kugeln ('use_spheroid' = false) messen, die leistungsfähiger ist. Wenn eine zusätzliche Genauigkeit erforderlich ist, kann die Option "use_spheroid" auf "true" festgelegt werden, um eine zusätzliche Genauigkeit zu erzielen, die für größere Entfernungen relevanter sein könnte, was aufgrund der Erdkrümmung beeinträchtigt werden kann.

Beispiele

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

Entfernung zwischen Seattle und Los Angeles.

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

Output

distance_in_meters
1546754.35197381

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

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 des Seattle to London LineString.

Im folgenden Beispiel werden alle Zeilen gefunden, 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

Output

distance_1_to_11m
10.5723100154958
7.92153588248414

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

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

Output

distance