如何通过HTTP服务器端请求获取Google地图公共交通路线指南

8

5个回答

6
你只需要在url的末尾添加&output=json即可。

1
即使是使用json,该url似乎也没有提供不同出行模式的指示,只有驾车。请问有人可以发布其他出行模式的url吗? - C0D3
1
使用此方法是未记录的,因此a)容易出现问题,b)可能违反地图使用条款。 - Mano Marks
1
您可以通过更改dirflg=参数来更改传输选项。根据我的理解,dirflg=w表示步行,dirflg=c表示驾车,dirflg=r表示公共交通(可能代表铁路),dirflg=b表示自行车路线。 - Dermot
@MathiasConradt 当我尝试在URL末尾添加&output=json来访问URL时,得到了未找到的结果。请给我建议。提前感谢您。这是我要访问的URL: https://maps.google.com/?saddr=436, Civil Line Road, Civil Lines, Gurgaon, Haryana 122007&daddr=A-06, Infocity,Gurgaon, Haryana&dirflg=r&output=json - dilipkumar1007
@Dermot 当我尝试在URL末尾添加&output=json来访问时,得到了未找到的结果。请给我建议。提前感谢您。 - dilipkumar1007
显示剩余10条评论

4
我想在Mathias的回答上补充一些内容。
  1. 目前没有官方的Google Transit API。交通信息由机构提供,大多数交通信息不是公开的。因此,谷歌无法将它们作为API开放。

  2. 您可以尝试使用您的链接 +“&output=json”来使用“非官方”的数据。

  3. 然而,结果不会是有效的JSON。相反,这是一些可以轻松转换为JavaScript对象的东西。(差异在于:属性名称周围没有引号,字符串未正确编码等)

  4. 想象一下你得到了这个JavaScript对象。然而,它不会让您轻松地获取结构化的路线详细信息。对象的属性包含路线点的坐标,但没有描述。唯一可能找到描述的地方是“panel”属性,它包含一块HTML文本(您可以在我的博客文章中找到HTML示例的链接)

  5. 因此,您必须将此HTML转换为XML(X-HTML),然后构建此XML的解析器以获取旅程的本质数据。

对我来说似乎有点过度了。请记住,“非官方”API可能会在将来发生变化,包括“面板”HTML结构的微小更改,这将破坏您的解析器。

@MathiasLin,您是如何克服这个问题的?


虽然有些晚了,回答你的问题:我们使用了output=xml的方法(而不是json),解析了xml并取得了很好的效果。如果“非官方”的API将来发生变化,我们只需简单地推送apk的另一个更新即可。 - Mathias Conradt
@MathiasLin,我理解得对吗?output=xml以前可以使用,但现在不行了?你不再使用谷歌公交“API”了吗? - Mikhail Shilkov
没有使用过公交API;该项目是在2010年完成的,但已经停止维护,所以不确定我提到的方法是否仍然有效,但在2010年当时它运行得还不错。 - Mathias Conradt
谷歌公共交通API的可用性有任何更新吗? - sachinr
@sachinr 是的,自2012年8月以来就已经提供了。请在这里查看链接:http://mikeshilkov.wordpress.com/2012/08/14/google-adds-public-transit-into-api/ - Mikhail Shilkov

3

1

1

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