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

4
我是一个GTFS的新手,我的研究发现,为了获取路线/交通等信息,必须以txt格式提供GTFS数据源。现在我的问题是:
1)如果我们创建自己的txt格式,并上传到GTFS数据源提供者,是否会在Google地图上显示?
2)我想拥有自己的GTFS服务器代码,它将从我的数据库中获取数据并进行处理,提供最佳的公共交通路线。这可行吗?假设我能运行Python和PHP脚本。
任何帮助都将不胜感激!
谢谢您的帮助!
2个回答

6
  1. 不行,因为你需要与谷歌达成协议才能使用你的数据,而且他们不太可能认真对待你,除非你与实际的交通机构有关联。但如果你好奇,可以阅读涉及的步骤

  2. 是的,这是可能的,并且有开源路由引擎可供使用,例如OpenTripPlannerGraphserver。然而,这是相当重型的东西。如果你只有一个基本的Web托管帐户,并且只想用交通数据做“一些有趣的事情”,那么建立在线旅行计划可能不是开始的地方。


我认为最直接的解决方案是让您在自己的服务器上运行OpenTripPlanner。这将为您的用户提供一个熟悉的网站,他们可以使用该网站从您的数据中生成旅行计划,同时使您完全控制数据本身。
请注意,运行OpenTripPlanner需要一台相当强大的服务器,以及来自OpenStreetMap的地图数据(我假设该数据可用于您的区域),以及您自己的交通数据。在该项目的网站上,您会找到Ubuntu的设置说明,以便了解所涉及的内容。
我假设您已经能够生成GTFS捆绑包;也就是说,生成符合GTFS参考中规定的逗号分隔数据文件的ZIP文件。有了OpenTripPlanner服务器设置,您的工作流程将变得非常简单。
  1. 修改您的交通数据。

  2. 生成新的GTFS包。

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

  4. 重新启动OpenTripPlanner。

  5. 可选地,通知您的用户有关更改的信息。

除第一步外,每个步骤都可以使用脚本自动执行。


那么tripplanners是如何工作的呢?我们需要将基于文本的文件提供给他们的算法,然后获取渲染后的反馈,还是他们需要在我们的服务器上部署算法...我实际上并不理解这个概念的整体思想。 - Abhilash L R
阿比拉什,你能详细说明一下你想要实现什么吗?听起来像是你想要创建自己的GTFS数据源,然后建立一个网站,从这些数据中为用户生成行程计划,就像谷歌地图一样。对吗? - user473305
是的。因为我希望用户能够在由管理员批准的运行时中创建交通线路。如果不行,至少有一个GTFS数据源API,每次更新我的网站的交通信息时都会生成一个交通响应。 - Abhilash L R
非常感谢您提供的详细解释!是否可以仅提取数据,如纬度/经度,然后在我选择的任何地图上(比如Google)进行填充?现在我又有一个困惑,OpenTripplanner的GTFS输出会是什么样子?它会像包含纬度/经度、折线等的JSON一样,还是只包含交通运输细节? - Abhilash L R
1
听起来你有一些研究要做,Abhilash。如果OpenTripPlanner不能直接提供你需要的信息,你可以在其上开发自定义用户界面。请查看OpenTripPlanner开发者指南和谷歌的静态地图API开发者指南 - user473305

0

针对您的第一个问题,谷歌需要知道交通线路信息。以下是谷歌提供的最新链接,帮助您开始[https://support.google.com/transitpartners/answer/1106422]。他们还需要来自交通机构授权代表的确认,证明这是一份授权的GTFS数据源。需要注意的是,txt格式并不完全正确。您需要创建的文件是GTFS文件(通用交通线路规范)。本质上,这是一个强制和可选txt文件的压缩文件,以CSV格式呈现。为了创建GTFS文件,您需要根据对GTFS的详细了解创建多个文件,或使用类似AddTransit中可以找到的GTFS编辑器/GTFS API。

2) 您可以在自己的服务器上安装路由软件。但是,如果Google正在使用您的GTFS数据,则另一种选择是在您的网站上创建一个简单的表单,供客户输入其起点和终点位置。然后,您可以使用Google地图上的公共交通选项返回建议的路线。这是一个简单的示例,您可以扩展以满足您的需求:https://addtransit.com/blog/2016/01/add-google-maps-public-transport-directions/


感谢Neil抽出时间回答这个问题。正如您在第二点所述,我有一个当前的实现。 - Abhilash L R

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接