2016-12-02 54 views
2

我有一个目标来运行我的城市中每条街道的每个街区。我一直在跟踪我绘制的自定义Google地图上的进度。测试日志和令人讨厌&错误情节新路线python可以自定义路由规划还是需要依赖API?

随着我进一步学习Python,我意识到这是一个成熟的自动化任务。

环顾四周,我看到很多路线规划API的选项(谷歌和GraphHopper看起来引人注目)。但我并不想从A-> B中获得并最小化距离。

我想增加某些块(我还没有运行)和减轻其他(我运行数百次)。这绝对是一个解决的问题(例如“当前流量”用于衡量路由优化),但我似乎无法找到好的示例。

是否有任何现有的python库,可以加权地图和提供路由解决方案?

或者,我是否错误地放弃了一些这样的API这么快?

回答

1

我不认为这些API可以帮助,因为您需要使用自定义“成本函数”计算出的路线。

简化路由API(如graphhopper/google maps),使用cost = distance/speed等成本函数。

相反,您需要一个成本函数,为“尚未运行”的街道提供较低的值。

你可以做graphhopper的本地安装,并按照这个例子 https://github.com/graphhopper/graphhopper/blob/0.8/docs/core/weighting.md

,或者你可以使用PostgreSQL + PostGIS的+ pgRouting并基于你的历史定制成本。 你可以找到类似的东西,以您的需求在这里 http://pgrouting.org/docs/howto/oneway.html

我敢肯定,你可以连接到与Python PostgreSQL数据库,但是你需要一些额外的工作来安装所需的软件,并导入数据。

Graphhopper有一个内置的OSM导入程序,您可以更轻松地获得工作实例(在我看来)。