我的目标是运行我城市每条街道的每个街道。我一直在跟踪自己绘制的自定义Google地图上的进度。记录并讨厌试验很繁重。错误绘制新路线
随着我更多地进入python,我意识到这是自动化的一项任务。
环顾四周,我看到了许多路由计划API的选项(Google和GraphHopper看起来很引人注目)。但是我不是要从A-> B获得最小化的距离。
我想提高某些块(我尚未运行的块)和其他块(我运行了数百次)。这绝对是一个解决的问题(例如,"当前流量"用于举重路线优化),但我似乎找不到好的示例。
是否有现有的python库可以加权地图并提供路由解决方案?
或者,我很快就放弃了其中一些API?
我不认为这些API可以提供帮助,因为您需要使用自定义"成本函数"计算的路由。
简化,诸如GraphHopper/Google Maps之类的路由API,使用成本函数,例如成本=距离/速度。
相反,您需要一个成本函数,为"尚未运行"街道的价值提供较低的价值。
您可以进行GraphHopper的本地安装,并按照此示例进行操作https://github.com/graphhopper/graphhopper/blob/0.8/docs/core/weighting.md
或者您可以使用PostgreSQL Postgis Prouting,并根据您的历史记录计算自定义成本。您可以在这里找到与您的需求类似的东西http://pgrouting.org/docs/howto/oneway.html
我确定您可以使用Python连接到PostgreSQL数据库,但是您需要一些其他工作来安装必要的软件并导入数据。
GraphHopper具有内置的OSM进口商,您可以更轻松地获得工作实例(在我看来)。