geo_line_length()

Schakelen tussen services met behulp van de vervolgkeuzelijst Versie . Meer informatie over navigatie.
Van toepassing op: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel

Berekent de totale lengte van een lijn of een multiline op aarde.

Syntaxis

geo_line_length( lineString)

Meer informatie over syntaxisconventies.

Parameterwaarden

Naam Typologie Verplicht Description
lineString dynamic ✔️ Een LineString of MultiLineString in de GeoJSON-indeling.

Retouren

De totale lengte van een lijn of een multilijn, in meters, op aarde. Als de regel of meerdere regels ongeldig is, produceert de query een null-resultaat.

Opmerking

  • De georuimtelijke coördinaten worden geïnterpreteerd als vertegenwoordigd door het WGS-84 coördinaatverwijzingssysteem.
  • De geodetische datum die wordt gebruikt om afstand op aarde te meten, is een bol. Lijnranden zijn geodesie op de bol.
  • Als de randen van de invoerlijn rechte cartesische lijnen zijn, kunt u overwegen geo_line_densify() te gebruiken om planaire randen te converteren naar geodetica.
  • Als invoer een multiline is en meer dan één regel bevat, is het resultaat de totale lengte van de samenvoeging van lijnen.

LineString-definitie en -beperkingen

dynamic({"type": "LineString","coördinaten": [[lng_1,lat_1], [lng_2,lat_2], ..., [lng_N,lat_N]]})

dynamic({"type": "MultiLineString","coördinaten": [[line_1, line_2, ..., line_N]]})

  • LineString-coördinatenmatrix moet ten minste twee vermeldingen bevatten.
  • Coördinaten [lengtegraad, breedtegraad] moeten geldig zijn wanneer lengtegraad een reëel getal is in het bereik [-180, +180] en breedtegraad een reëel getal is in het bereik [-90, +90].
  • De lengte van de rand moet kleiner zijn dan 180 graden. De kortste rand tussen de twee hoekpunten wordt gekozen.

Voorbeelden

In het volgende voorbeeld wordt de totale lijnlengte berekend, in meters.

let line = dynamic({"type":"LineString","coordinates":[[-73.95807266235352,40.800426144169315],[-73.94966125488281,40.79691751000055],[-73.97317886352539,40.764486356930334]]});
print length = geo_line_length(line)

Uitvoer

length
4922.48016992081

In het volgende voorbeeld wordt de totale lengte van meerdere regels berekend, in meters.

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)

Uitvoer

length
8262.24339753741

In het volgende voorbeeld wordt Waar geretourneerd vanwege de ongeldige regel.

print is_bad_line = isnull(geo_line_length(dynamic({"type":"LineString","coordinates":[[1, 1]]})))

Uitvoer

is_bad_line
Klopt