geo_intersection_2lines()
Calcule l’intersection de deux lignes ou multilignes.
Syntax
geo_intersection_2lines(
lineString1,
lineString2)
Découvrez les conventions de syntaxe.
Paramètres
Nom | Type | Obligatoire | Description |
---|---|---|---|
lineString1 | dynamic |
✔️ | Ligne ou multiligne au format GeoJSON. |
lineString2 | dynamic |
✔️ | Ligne ou multiligne au format GeoJSON. |
Retours
Intersection au format GeoJSON et d’un type de données dynamique . Si LineString ou MultiLineString ne sont pas valides, la requête produit un résultat null.
Notes
- 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 trait sont des 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() afin de convertir les arêtes planaires en géodésiques.
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 lorsque 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.
Conseil
Utilisez linestring littéral ou MultiLineString pour de meilleures performances.
Exemples
L’exemple suivant calcule l’intersection entre deux lignes. Dans ce cas, le résultat est un point.
let lineString1 = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[-73.985195,40.788275],[-73.974552,40.779761]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)
Sortie
intersection |
---|
{"type » : « Point »,"coordinates » : [-73.97983711670978,40.783989289772165]} |
L’exemple suivant calcule l’intersection entre deux lignes. Dans ce cas, le résultat est une ligne.
let line = dynamic({"type":"LineString","coordinates":[[-73.978929,40.785155],[-73.980903,40.782621]]});
print intersection = geo_intersection_2lines(line, line)
Sortie
intersection |
---|
{"type » : « LineString »,"coordinates » : [[ -73.978929, 40.785155],[ -73.980903, 40.782621]]} |
Les deux lignes suivantes ne se croisent pas.
let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3],[4, 4]]});
print intersection = geo_intersection_2lines(lineString1, lineString2)
Sortie
intersection |
---|
{"type » : « GeometryCollection », « geometries » : []} |
L’exemple suivant retourne un résultat null, car l’une des lignes n’est pas valide.
let lineString1 = dynamic({"type":"LineString","coordinates":[[1, 1],[2, 2]]});
let lineString2 = dynamic({"type":"LineString","coordinates":[[3, 3]]});
print invalid = isnull(geo_intersection_2lines(lineString1, lineString2))
Sortie
non valide |
---|
1 |
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour