Calcul d'itinéraire

Quelques règles par rapport au plan GEOLYS

  • L'adjacence entre deux pièce fait office de passage, il n'est plus nécessaire de définir un point "porte" entre deux pièces
  • Prend en charge le tag "routable" sur les pièces qui indique si une pièce peut être traversée
  • Prend en charge le tag "oneway" sur les chemins pour forcer un sens unique de déplacement
  • La "largeur" de la personne est paramétrable (en mètres), cela permet de ne pas coller au murs et d'introduire un débord
  • Les points de départ et d'arrivée sont calculés sur le chemin le plus proche s'ils ne sont pas dans une pièce

Calculer un itinéraire

Requête :

https://api.geolys.io/v1/pathfinding/43/findpath?api_key={apikey}&fromlocation={from}&tolocation={from}

 

Paramètres :

  • apikey : clé d'api geolys
  • fromlocation : long, lat, elevation
  • tolocation : long, lat, elevation

Résultats :

Un tableau JSON des points du chemin. Par exemple :

// lon
// lat,
// elevation,
// nodeid (id du node ou 4294967295 si node généré),
// nodetype (2=start, 1=node, 3=end),
// sourceid (id de la room si <> 0),
// floorid (id du floor ou 0 si outdoor)
[
  [ 5.0106563263895225, 47.294071002251769, 0.0, 4294967295, 2, 0, 0 ],
  [ 5.0106668733273443, 47.294061224643492, 0.0, 4294967295, 2, 0, 0 ],
  [ 5.0106505, 47.2940531, 0.0, 175, 1, 0, 0 ],
  [ 5.0106435, 47.2940397, 0.0, 120, 1, 0, 0 ],
  [ 5.0106575, 47.2940213, 0.0, 258, 1, 0, 0 ],
  [ 5.0106502, 47.2940083, 0.0, 66, 1, 5771, 1766 ],
  [ 5.010631, 47.2939897, 0.0, 262, 1, 5771, 1766 ],
  [ 5.0105846, 47.2940011, 0.0, 317, 1, 0, 1766 ],
  [ 5.0105926, 47.2940166, 0.0, 3, 1, 0, 1766 ],
  [ 5.0106399, 47.2940041, 3.0, 276, 1, 5770, 4228 ],
  [ 5.0106332, 47.2939908, 3.0, 56, 1, 5770, 4228 ],
  [ 5.0107853178421919, 47.293961980938718, 6.0, 4294967295, 3, 5793, 6265 ]
]

 

Evolution vers un système X,Y,Z

Un autre point d'API est en développement, pour autoriser la calcul d'itinéraire dans un contexte x, y, z à la place de coordonnées Géo.

Support