我的目标是在我所在城市的每条街道上运行。我一直在跟踪我绘制的自定义谷歌地图上的进度。记录和讨厌审判和繁琐是繁琐的错误绘制新路线
随着我对Python的更多了解,我意识到这是一项适合自动化的任务。
环顾四周,我看到路线规划API有很多选择(谷歌和GraphHopper看起来很引人注目)。但我并没有试图从A-> B获得并最小化距离。
我想增加某些块(我还没有运行)和减轻其他块(我已经运行了数百次)。这绝对是一个已解决的问题(例如"当前流量"用于加权路线优化),但我似乎无法找到好的例子。
是否有任何现有的python库可以加权地图并提供路由解决方案?
或者,我很快就放弃了一些这些API?
答案 0 :(得分:2)
我不认为这些API可以提供帮助,因为您需要使用自定义“成本函数”计算的路线。
简化路由API,如graphhopper / google地图,使用成本函数,如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导入器,你可以更容易地获得一个工作实例。(在我看来)。