如何创建自己的GTFS数据源和行程规划器?

4 投票
2 回答
4564 浏览
提问于 2025-04-17 22:31

我刚接触GTFS(公共交通时刻表数据格式),在研究中发现,要获取路线和交通信息,必须提供txt格式的GTFS数据。

现在我有两个问题:

1) 如果我们自己制作txt格式的数据,并上传到GTFS数据提供者那里,这些数据会在谷歌地图上显示出来吗?

2) 我想要有自己的GTFS服务器代码,这样可以从我的数据库中获取数据,处理后提供最佳的交通路线。这可能吗?假设我会运行Python和PHP脚本。

任何帮助都非常感谢!

提前谢谢你!

2 个回答

0

针对你的第一个问题,谷歌需要知道你的交通数据源。这里有一个最新的链接,可以帮助你入门:[https://support.google.com/transitpartners/answer/1106422]。他们还需要交通机构的授权代表确认这是一个被授权的GTFS数据源。需要注意的是,txt格式并不是完全正确的。你需要创建的是一个GTFS文件(通用交通数据规范)。简单来说,这个文件是一个压缩包,里面包含了必需和可选的txt文件,格式是CSV。要创建GTFS文件,你需要根据对GTFS的详细理解来制作多个文件,或者使用像AddTransit这样的GTFS编辑器/GTFS API。

2) 你可以在自己的服务器上安装路线规划软件。不过,如果谷歌在使用你的GTFS数据,另一种选择是在你的网站上创建一个简单的表单,让客户输入他们的起点和终点。然后你可以使用谷歌地图上的交通选项来返回建议的路线。这里有一个简单的例子,你可以根据自己的需求进行扩展:[https://addtransit.com/blog/2016/01/add-google-maps-public-transport-directions/]

6
  1. 不可以,因为你需要和谷歌签订协议,让他们使用你的数据,而他们通常不会认真对待你,除非你和真正的交通机构有关系。不过如果你感兴趣,可以看看参与的步骤

  2. 可以的,市面上有一些开源的路线规划引擎可以使用,比如OpenTripPlannerGraphserver。不过这些东西比较复杂。如果你只是有一个基本的网页托管账户,想用交通数据做点“有趣的事情”,那么搭建一个在线旅行规划器可能不是个好主意。


我觉得最简单的解决方案就是在你自己的服务器上运行OpenTripPlanner。这样可以给你的用户提供一个熟悉的网站,让他们可以用你的数据生成旅行计划,同时你对数据有完全的控制权。

需要注意的是,运行OpenTripPlanner需要一台比较强大的服务器,还需要来自OpenStreetMap的地图数据(我假设你所在的地区有这些数据),以及你自己的交通数据。在这个项目的网站上,你可以找到Ubuntu的设置说明,可以让你了解需要做些什么。

我假设你已经能够生成GTFS包;也就是说,能够生成一个包含以逗号分隔的数据文件的ZIP文件,这些文件的格式是GTFS参考中规定的。有了OpenTripPlanner服务器后,你的工作流程就简单了:

  1. 修改你的交通数据。

  2. 生成一个新的GTFS包。

  3. 将这个包上传到你的OpenTripPlanner服务器的特定文件夹。

  4. 重启OpenTripPlanner。

  5. 可选:通知你的用户这些变化。

除了第一步,其他每一步都可以用脚本自动化处理。

撰写回答