我正在为 Android 开发离线地图和导航应用程序作为我的最后一年项目。该应用程序必须提供类似于 Google Transit 的公交路线规划。目前我正在一个小城市作为原型工作,效率现在不是问题。
但是,我不知道有任何现成的 Java 框架可以帮助我实现这样的功能,我也不知道有任何算法可以帮助我编写自己的代码。
谁能指导我从哪里开始,或者通过指向我的代码示例,或者至少路由理论页面来帮助我编写自己的代码?
我正在为 Android 开发离线地图和导航应用程序作为我的最后一年项目。该应用程序必须提供类似于 Google Transit 的公交路线规划。目前我正在一个小城市作为原型工作,效率现在不是问题。
但是,我不知道有任何现成的 Java 框架可以帮助我实现这样的功能,我也不知道有任何算法可以帮助我编写自己的代码。
谁能指导我从哪里开始,或者通过指向我的代码示例,或者至少路由理论页面来帮助我编写自己的代码?
理论与算法:
如果您还没有读过它,最短路径问题主要是大多数旅程规划算法正在处理的挑战。在 wiki 页面上,阅读“算法”部分以获取可能的解决方案列表(Dijkstra可能是最受欢迎的)。有一些专门针对公共交通的算法变体,例如RAPTOR。
模型和旅程规划器:
根据您的工作范围,设计一个模型并自行实施整个旅程规划器可能是最重要的。
我建议您以GTFS 格式(非常简单,基于 CSV 文件)提供您的数据(站点、连接、时间……),然后使用诸如OpenTripPlanner之类的旅程规划器。它考虑了几个计划因素,并且可以导入您提供的 GTFS 数据。OpenTripPlanner还有一个Android 实现,但我不确定它有多先进。
替代方案:
除了 GTFS/OpenTripPlanner,欧洲还有一个广泛使用的标准来模拟运输信息,称为Transmodel,并支持“JourneyWeb”等规划引擎。许多当地的运输供应商(包括我所在城市的一家)在 Transmodel 之上构建他们的服务。但我认为这将更难实现(另外我不确定许可证和免费/开放实现),所以我会坚持上述解决方案。