La fonction distance()
retourne la distance directe entre deux coordonnées géographiques en mètres.
Arguments:
- Coordonnées géographiques1
<point>
- Coordonnées géographiques2
<point>
Retourne:
- Distance
<number>
Echantillon de graph : (à utiliser pour les exemples suivants)
Exécutez les UQLs ci-dessous un par un dans un graphset vide pour créer des données de graph:create().node_property(@default, "name").node_property(@default, "lat_long", point)
insert().into(@default).nodes([{_id:"L001", _uuid:1, name:"New York", lat_long:point({latitude:40.7, longitude:-74.0})}, {_id:"L002", _uuid:2, name:"Paris", lat_long:point({latitude:48.5, longitude:2.2})}, {_id:"L003", _uuid:3, name:"Sydney", lat_long:point({latitude:-33.9, longitude:150.9})}, {_id:"L004", _uuid:4, name:"Beijing", lat_long:point({latitude:39.9, longitude:116.3})}])
Utilisation Courante
Exemple : Calcul direct, retour en kilomètres
find().nodes({name in ["New York", "Paris"]}) as a
find().nodes({name in ["Sydney", "Beijing"]}) as b
return table(a.name, b.name, distance(a.lat_long, b.lat_long)/1000)
| a.name | b.name | distance(a.point, b.point)/1000 |
|----------|---------|---------------------------------|
| New York | Sydney | 16017.5939640978 |
| Paris | Beijing | 8247.41966611293 |
Exemple : Multiplier et calculer, retour en kilomètres
find().nodes({name in ["New York", "Paris"]}) as a
find().nodes({name in ["Sydney", "Beijing"]}) as b
with distance(a.lat_long, b.lat_long)/1000 as c
return table(a.name, b.name, c)
| a.name | b.name | c |
|----------|---------|------------------|
| New York | Sydney | 16017.5939640978 |
| New York | Beijing | 10992.9752060986 |
| Paris | Sydney | 16967.299225946 |
| Paris | Beijing | 8247.41966611293 |