extraction des coordonnées

salut ,
je voudrais créer un programme simple en C , qui calcule le plus court chemins entre deux points en utilisant l’algorithme de dijkstra a la maniere de google maps par exemple), en utilisant un graphe qui represente par exemple une ville réelle , osm me semble interessant mais jignore presque tout sur la maniere d’exploiter les données
je voudrais telecharger la carte d’une certaine ville , avec des coordonnées de sommets , les sommets representant une intersection réelle de plusieurs routes
je ne sais pas si le format des carte puisse permettre sans trop se fatiguer dextraire les coordonnées des intersections de rues , et je ne suis pas sur si ces données (coordonnées des intersections) soient suffisantes pour faire le programme
merci de méclairer a ce sujet

pas de reponse ? :unamused:

Il existe de nombreux outils de calcul d’itinéraire qui s’appuient sur des données OSM.

tu peux regarde ce qui existe déjà: http://wiki.openstreetmap.org/wiki/Routing

Salut,

Si ton but est vraiment de coder un algo de routage et non pas d utiliser une librairie de routage toute prete l exercice est interessant et je pense tout a fait faisable avec les donnees OSM
Deja ce que tu peux faire c est aller sur http://www.openstreetmap.org zoomer sur la ville qui t interesse et cliquer sur export pour recupere toutes les donnees OSM de la ville.
Tu vas obtenir un fichier xml contenant toutes les donnees OSM de la zone. Il te faudra donc soit ecrire un petit parser XMl soit utiliser une libraririe existante
A mon avis le plus simple c est de faire du routage voiture donc pour cela il ne faut tenir compte que des routes. je te conseille donc de filter les donnees OSM pour ne garder que les chemins ( et leurs noeuds ) portant les tags highways specifiques aux voitures ( http://wiki.openstreetmap.org/wiki/Highway ). Soit tu implements le filtrage dans ton programme soit tu filtres le XML en utilisant un outil genre Osmosis ( http://wiki.openstreetmap.org/wiki/Osmosis ) pour generer un XML qui ne contient que les donnees de route.
Ensuite pour les intersections il va falloir que tu trouves les noeuds qui appartiennent a plusieurs chemins.
A partir de cela tu pourras construire un graphe simplifie des rues de la ville et appliquer ton algo de Dijkstra dessus.
Sur cette page wiki tu trouveras la description du modele de donnee OSM http://wiki.openstreetmap.org/wiki/Elements et ici la description du format XML utilise dans l export http://wiki.openstreetmap.org/wiki/.osm
Si tu veux faire un truc vraiment “utilisable” il faudra aussi tenir compte des tags de restriction d acces ( http://wiki.openstreetmap.org/wiki/Access ), des sens uniques ( http://wiki.openstreetmap.org/wiki/Oneway ) et si tu veux vraiment raffiner des relations qui indiquent par exemple une interdiction de tourner a gauche http://wiki.openstreetmap.org/wiki/Relation:restriction

Je pense qu avec ces infos tu devrais pouvoir faire quelque chose

Merci pour votre réponse ,
cependant je rencontre beaucoup de problèmes vu que je suis débutant , je voudrais bien un tutorial pour utilisation de osmosis mais j’en ai pas trouvé sur internet .
Je suis débutant et je n’y connais rien au truc de console , j’ai essayer d’extraire les chemins “highways” comme cité dans l’exemple sur la page d’osmosis , mais j’ai l’erreur suivante : only one default argument can exist per task arguments 3 and 2 have no name
je n’ai aucune idée sur ce que celà veut dire .

Je suis tombé sur un site : overpass turbo mais je sais pas si ca va m’etre utile pour extraire les données que je veux , a savoir les intersections de routes .
sans ces données je ne peux pas progresser dans mon projet , merci de bien vouloir m’aider dans la démarche d’extraction