如何通过HTTP服务器端请求获取Google Maps Public Transit Directions

时间:2010-04-22 09:20:42

标签: google-maps driving-directions

我使用这样的网址:

http://maps.google.com/?saddr=546%206th%20Avenue,%20New%20York,%20NY%2010011%20(Sixth%20Avenue,%20New%20York)&daddr=W%20103rd%20St,%20New%20York,%20NY%20&dirflg=r

但它返回完整的html页面。有人知道如何以json或xml或任何可解析的格式获取此类信息吗?

我需要公共交通。

5 个答案:

答案 0 :(得分:6)

您只需将&output=json添加到网址的末尾。

答案 1 :(得分:4)

我想稍微扩展一下Mathias的答案。

  1. momemnt上没有正式的Google Transit API。过境由代理商提供,大多数Transits不公开。因此,Google不允许将其作为API打开。

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

  3. 但是,结果将不是有效的JSON。相反,这是可以轻松转换为JavaScript对象的东西。 (不同之处在于:属性名称周围没有引号, 字符串没有正确编码等。)

  4. 想象一下,你有这个JavaScript对象。但是,它不允许您轻松获取结构化路线详细信息。对象的属性包含路径点坐标,但没有描述。可以找到描述的唯一地方是“panel”属性,其中包含一大块HTML文本(您可以在my blog post中找到指向HTML示例的链接)

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

  6. 对我来说似乎有点矫枉过正。请记住,“非官方”API可能会在未来发生变化,包括“面板”HTML结构中的轻微更改会导致您的解析器失效。

    @MathiasLin,你是怎么克服这个的?

答案 2 :(得分:3)

Google Maps Javascript v3和Directions Web Service现在具有以下功能: http://googlegeodevelopers.blogspot.in/2012/06/public-transit-routing-and-layer-now.html

答案 3 :(得分:1)

重新选择公共交通 - 现在似乎默认为公共交通(至少在我使用时)。

将最后一个网址参数dirflg = r更改为dirflg = w会将路线切换为步行模式。

另见:

Walking, bicycle and public transport directions with time required in each mode , iPhone

有关参数的更多详细信息。

答案 4 :(得分:1)

Google方向API响应采用HTML,JSON格式,请检查https://developers.google.com/maps/documentation/javascript/directions?hl=lv

&安培; “DirectionsResult对象”部分