2016-12-02 2 views
2

J'ai un objectif de gérer chaque bloc de chaque rue de ma ville. J'ai suivi mes progrès sur une carte google personnalisée que je dessine. Comme il est difficile de se connecter et odieux à l'essai & erreur tracer de nouvelles routesPython peut-il faire une planification d'itinéraire personnalisée ou dois-je me fier à une API?

Comme je me rends plus dans Python, j'ai réalisé que c'est une tâche mûre pour l'automatisation. Cependant, en regardant autour de moi, je vois beaucoup d'options pour l'API de planification d'itinéraire (google et GraphHopper semblent irrésistibles). Mais je n'essaie pas d'obtenir seulement de A-> B et de minimiser la distance. Je veux faire de l'embonpoint pour certains blocs (ceux que je n'ai pas encore courus) et les autres (ceux que j'ai courus des centaines de fois). Ceci est certainement un problème résolu (par exemple, le "trafic actuel" est utilisé pour pondérer les optimisations de route), mais je n'arrive pas à trouver de bons exemples. Y at-il des bibliothèques python existantes qui peuvent pondérer des cartes et fournir des solutions de routage? Sinon, ai-je tort d'abandonner si tôt certaines de ces API?

Répondre

1

Je ne pense pas que ces API puissent vous aider, car vous avez besoin d'une route calculée à l'aide d'une "fonction de coût" personnalisée. En simplifiant, les API de routage comme graphhopper/google maps utilisent une fonction de coût comme coût = distance/vitesse. Au lieu de cela, vous avez besoin d'une fonction de coût qui donne des valeurs plus faibles pour les rues "encore à exécuter".

Vous pouvez faire une installation locale de graphhopper, et suivre cet exemple https://github.com/graphhopper/graphhopper/blob/0.8/docs/core/weighting.md

ou vous pouvez utiliser PostgreSQL + PostGIS + pgRouting et calculer un coût personnalisé en fonction de votre histoire. Vous pouvez trouver quelque chose de similaire à vos besoins ici http://pgrouting.org/docs/howto/oneway.html

Je suis sûr que vous pouvez vous connecter à une base de données postgresql avec python, mais vous avez besoin de travail supplémentaire pour installer le logiciel nécessaire et d'importer des données.

Graphhopper a un importateur OSM intégré et vous pouvez obtenir une instance de travail plus facile (à mon avis).