Partager via


geo_line_length()

S’applique à : ✅Microsoft Fabric✅Azure Data ExplorerAzure MonitorMicrosoft Sentinel

Calcule la longueur totale d’une ligne ou d’un multiligne sur Terre.

Syntaxe

geo_line_length(lineString)

En savoir plus sur les conventions de syntaxe.

Paramètres

Nom Type Requise Description
lineString dynamic ✔️ LineString ou MultiLineString au format GeoJSON.

Retours

Longueur totale d’une ligne ou d’un multiligne, en mètres, sur Terre. Si la ligne ou le multiligne n’est pas valide, la requête produit un résultat null.

Remarque

  • Les coordonnées géospatiales sont interprétées comme représentées par le système de référence de coordonnées WGS-84 .
  • La référence géodésique utilisée pour mesurer la distance sur terre est une sphère. Les bords de ligne sont géodésiques sur la sphère.
  • Si les bords de ligne d’entrée sont des lignes cartésiennes droites, envisagez d’utiliser geo_line_densify() pour convertir les bords planaires en géodésiques.
  • Si l’entrée est multiligne et contient plusieurs lignes, le résultat est la longueur totale de l’union de lignes.

Définition et contraintes LineString

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]})

  • Le tableau de coordonnées LineString doit contenir au moins deux entrées.
  • Les coordonnées [longitude, latitude] doivent être valides, où la longitude est un nombre réel dans la plage [-180, +180] et la latitude est un nombre réel dans la plage [-90, +90].
  • La longueur du bord doit être inférieure à 180 degrés. Le bord le plus court entre les deux sommets sera choisi.

Exemples

L’exemple suivant calcule la longueur totale de la ligne, en mètres.

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

Sortie

length
4922.48016992081

L’exemple suivant calcule la longueur totale multiligne, en mètres.

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)

Sortie

length
8262.24339753741

L’exemple suivant retourne True en raison de la ligne non valide.

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

Sortie

is_bad_line
True