8

我使用这样的网址:

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 或任何可解析的格式获取此类信息吗?

我需要公共交通。

4

5 回答 5

6

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

于 2010-06-22T02:43:13.323 回答
4

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

  1. 目前没有官方的 Google Transit API。Transit 由机构提供,大多数 Transit 不是公共的。因此,Google 不允许将它们作为 API 打开。

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

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

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

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

对我来说似乎有点矫枉过正。请记住,“非官方”API 将来可能会发生变化,包括“面板”HTML 结构的微小变化,这会杀死你的解析器。

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

于 2012-04-10T06:10:33.640 回答
3

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

于 2012-08-15T16:39:02.450 回答
1

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

将最后一个 URL 参数 dirflg=r 更改为 dirflg=w 会将方向切换到步行模式。

加看:

步行、自行车和公共交通路线以及每种模式所需的时间,iPhone

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

于 2012-02-15T14:00:26.743 回答
1

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

& 部分“DirectionsResult 对象”

于 2013-07-17T07:40:14.353 回答