De la bano à l'itineraire ?

Extraire des données OSM, créer sa carte, uMap, utiliser sur un GPS ou un smartphone...
MonsieurB
Messages : 3
Inscription : ven. oct. 05, 2018 12:08 pm

De la bano à l'itineraire ?

Message par MonsieurB » ven. oct. 05, 2018 2:54 pm

Bonjour,
Osm a récemment ajouter le routage c'est chouette.

je dois fournir un service de ce type avec l'ordre des étapes à suivre, en France métropolitaine. Je souhaiterai héberger les data pour ne pas être limité en nombre de requêtes /s pour un usage immodéré pendant 2 heures puis plus rien pendant 24 h ou un mois.
j'ai du coup un ou deux souci de compréhension des différentes étapes. Et c'est l'occasion de faire un joli thread.

Les différentes étapes:
Installation d'un outil de géocodage
d'une adresse une position en lat lon
Installation d'un outil de routing
transformer les positions en nœud
de deux nœuds un chemin en voiture (le plus court)
de plusieurs nœuds les chemins les plus courts
itinéraire la somme des chemins les plus court
indiquer l'ordre des points sur un fond et tracer les chemins.
Génération des images (fusion fond et itinéraires ou installation d'un outils de visualisation
Installation ou création d'une API pour les requêtes par le logiciel client.
Automatiser les update et les contrôles de cohérences.

geocodage

J'ai donc installé (je commence par l’île de France) la BAN avec addok ! Excellent ça geocode
avec un retour Point lon lat {"coordinates": [2.344467, 48.81407],"type": "Point"}

routing
Puis j'ai intégré les data osm (tjs IDF) depuis geofabrik à l'aide de osm2pgrouting
la version actuel semble générer automatiquement la topologie.

Code : Tout sélectionner

osm2pgrouting --conf /usr/share/osm2pgrouting/mapconfig_for_cars.xml --file IDF.osm --dbname france -U umap --clean --password XXX --addnodes 
quelques messages d'erreur sur des type de voie inconnu "30 fr" etc.. donc adapter le fichier de config xml

Avec l'extension pgrouting on peut calculer un chemin sur le graph
quelles méthodes pgrouting pour passer de lon lat à un noeud ?
en postgis j'ai trouvé ça :

Code : Tout sélectionner

SELECT * FROM osm_nodes  ORDER BY the_geom <-> ST_GeometryFromText('POINT(2.359597 48.81407)',4326) LIMIT 1;
mais il doit y avoir une fonction pgrouting plus efficace.

Pour le chemin entre deux points

Code : Tout sélectionner

SELECT seq, node, edge, cost
		FROM pgr_dijkstra('SELECT gid as id, source, target,length as cost FROM ways',66275,77801, false); 
les arguments 66275, 77801 sont pris au hasard dans les colonnes source ou target
on reçoit une liste de noeuds.
On peut se demander si on peut passer un liste de nœud en deuxième arguments, comme des point de passage, mais l'ordre sera surement respecté.
pareil il faut encore étudier les fonction pgrouting.
Si vous avez des propositions

outils de visualisation
j'ai vu ça en licence MIT ultra léger et requête deux services à remplacer dans le code et changer la génération du point d'arrivé.

j'ajouterai le dépôt ici quand ce sera fait.
j'ai bien vu osrm mais c'est tout packadgé et je ne saurai pas l'adapter. plutôt du python
j'ai vu aussi sur le wiki simpleosmrouter
mais il charge en mémoire directement le fichier de données, dans le code je ne l'ai pas vu écrire donc à chaque démarrage .. :(
et 5 ans sans commit :(
Merci de vos conseils

yvecai
Messages : 43
Inscription : ven. févr. 26, 2016 4:49 pm

Re: De la bano à l'itineraire ?

Message par yvecai » ven. oct. 05, 2018 8:10 pm

Pour les projets de routages 'alive and kicking' et opensource, voir les projets listés en option pour le routage sur openstreetmap.org.
Cela dit, la dernière fois que j'ai essayé pgrouting, j'ai regretté qu'il n'y ait pas plus d'utilisateurs finaux: beaucoup de choses à faire soi-même.

Avatar de l’utilisateur
cquest
Messages : 1821
Inscription : ven. avr. 16, 2010 12:22 am
Localisation : Val de Marne
Contact :

Re: De la bano à l'itineraire ?

Message par cquest » dim. oct. 07, 2018 8:22 pm

pgRouting est très générique et pas forcément le plus au top pour faire du calcul d'itinéraire.

Regarde OSRM et GraphHopper

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 8 invités