我使用这样的网址:
但它返回完整的 html 页面。有人知道如何以 json 或 xml 或任何可解析的格式获取此类信息吗?
我需要公共交通。
我使用这样的网址:
但它返回完整的 html 页面。有人知道如何以 json 或 xml 或任何可解析的格式获取此类信息吗?
我需要公共交通。
您只需添加&output=json
到网址的末尾。
我想稍微扩展一下 Mathias 的答案。
目前没有官方的 Google Transit API。Transit 由机构提供,大多数 Transit 不是公共的。因此,Google 不允许将它们作为 API 打开。
您可以尝试使用您的链接+“&output=json”来使用“非官方”数据。
但是,结果将不是有效的 JSON。相反,它可以很容易地转换为 JavaScript 对象。(不同之处在于:属性名称周围没有引号,字符串未正确编码等)
想象一下,你得到了这个 JavaScript 对象。但是,它不会让您轻松获得结构化的路线详细信息。对象的属性包含路线点坐标,但没有描述。唯一可以找到描述的地方是“面板”属性,它包含一大段 HTML 文本(您可以在我的博客文章中找到指向 HTML 示例的链接)
因此,您必须将此 HTML 转换为 XML (X-HTML),然后构建此 XML 的解析器以获取旅行的基本数据。
对我来说似乎有点矫枉过正。请记住,“非官方”API 将来可能会发生变化,包括“面板”HTML 结构的微小变化,这会杀死你的解析器。
@MathiasLin,你是如何克服这个问题的?
Google Maps Javascript v3 和 Directions Web Service 现在具有此功能:http: //googlegeodevelopers.blogspot.in/2012/06/public-transit-routing-and-layer-now.html
重新选择公共交通 - 现在似乎默认为公共交通(至少在我使用它时)。
将最后一个 URL 参数 dirflg=r 更改为 dirflg=w 会将方向切换到步行模式。
加看:
步行、自行车和公共交通路线以及每种模式所需的时间,iPhone
有关参数的更多详细信息。
Google 方向 API 响应为 HTML,JSON 格式请查看https://developers.google.com/maps/documentation/javascript/directions?hl=lv
& 部分“DirectionsResult 对象”