geo_line_length()
Gilt für: ✅Microsoft Fabric✅Azure Data Explorer✅Azure Monitor✅Microsoft Sentinel
Berechnet die Gesamtlänge einer Linie oder einer mehrzeiligen Linie auf der Erde.
Syntax
geo_line_length(
lineString)
Erfahren Sie mehr über Syntaxkonventionen.
Parameter
Name | Type | Erforderlich | Beschreibung |
---|---|---|---|
lineString | dynamic |
✔️ | Eine LineString- oder MultiLineString-Eigenschaft im GeoJSON-Format. |
Gibt zurück
Die Gesamtlänge einer Linie oder einer mehrzeiligen Länge in Metern auf der Erde. Wenn die Zeile oder mehrzeilige Zeile ungültig ist, erzeugt die Abfrage ein NULL-Ergebnis.
Hinweis
- Die Geospatialkoordinaten werden durch das WGS-84-Koordinatenverweissystem interpretiert.
- Das geodetische Datum , das zum Messen der Entfernung auf der Erde verwendet wird, ist eine Kugel. Linienränder sind geodätische Ränder auf der Kugel.
- Wenn Eingabelinien gerade kartesische Linien sind, sollten Sie geo_line_densify() verwenden, um planare Kanten in geodätische Ränder zu konvertieren.
- Wenn die Eingabe eine mehrzeilige Zeile ist und mehr als eine Zeile enthält, ist das Ergebnis die Gesamtlänge der Zeilenunion.
LineString-Definition und -Einschränkungen
dynamic({"type": "LineString","coordinates": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})
dynamic({"type": "MultiLineString","coordinates": [[line_1, line_2, ..., line_N]]})
- LineString-Koordinatenarray muss mindestens zwei Einträge enthalten.
- Koordinaten [Längengrad, Breitengrad] müssen gültig sein, wobei Längengrad eine reelle Zahl im Bereich [-180, +180] und Breitengrad eine reelle Zahl im Bereich [-90, +90] ist.
- Die Kantenlänge muss kleiner als 180 Grad sein. Der kürzeste Rand zwischen den beiden Scheitelpunkten wird ausgewählt.
Beispiele
Im folgenden Beispiel wird die Gesamtlänge der Linie in Metern berechnet.
let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334]]});
print length = geo_line_length(line)
Output
length |
---|
4922.48016992081 |
Im folgenden Beispiel wird die Gesamtlänge der mehrteiligen Länge in Metern berechnet.
let line = dynamic({"type":"MultiLineString","coordinates":[[[-73.95798683166502,40.800556090021466],[-73.98193359375,40.76819171855746]],[[-73.94940376281738,40.79691751000055],[-73.97317886352539,40.76435634049001]]]});
print length = geo_line_length(line)
Output
length |
---|
8262.24339753741 |
Im folgenden Beispiel wird "True" aufgrund der ungültigen Zeile zurückgegeben.
print is_bad_line = isnull(geo_line_length(dynamic({"type":"LineString","coordinates":[[1, 1]]})))
Output
is_bad_line |
---|
True |