【问题标题】:Can python do custom route planning or do I need to rely on an API?python可以做自定义路线规划还是我需要依赖API?
【发布时间】:2026-01-29 04:40:02
【问题描述】:

我的目标是跑遍我所在城市的每条街道的每一个街区。我一直在我绘制的自定义谷歌地图上跟踪我的进度。记录繁琐,尝试和错误绘制新路线令人讨厌

随着我对 Python 的深入了解,我意识到这是一项成熟的自动化任务。

不过环顾四周,我发现路线规划 API 有很多选项(google 和 GraphHopper 看起来很有吸引力)。但我并不想仅仅从 A->B 出发并尽量减少距离。

我想增加某些街区的重量(我还没有跑过的街区)并降低其他街区的重量(我已经跑了数百次)。这绝对是一个已解决的问题(例如“当前流量”用于加权路由优化),但我似乎找不到好的例子。

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

或者,我这么快就放弃其中一些 API 是不是错了?

【问题讨论】:

  • 您能详细说明您是如何解决这个问题的吗?我会对可能的解决方案感兴趣

标签: python routing graphhopper


【解决方案1】:

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

使用诸如成本=距离/速度之类的成本函数来简化、路由 API(例如 graphhopper/google maps)。

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

您可以在本地安装 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 导入器,您可以更轻松地获得一个工作实例(在我看来)。

【讨论】:

    最近更新 更多