从Google地图页面解析JSON响应

时间:2009-05-18 14:36:29

标签: java json google-maps parsing

我正在尝试在我的java代码中找到解析来自“普通”(即不使用API​​)Google Maps页面的响应的最佳方法。

原因:我想提交一个请求列表的查询字符串(无论是酒店,餐馆等),然后解析返回的JSON。我曾调查过使用Google Maps API,但它似乎没有涵盖我想要做的事情,因为这种类型的网址:

http://maps.google.de/maps/地理问= 地址&安培;输出= XML&安培; OE = UTF8&安培;传感器=假安培;键= ...

没关系,但这不是:

http://maps.google.de/maps/地理问= 地址+酒店&安培;输出= XML&安培; OE = UTF8&安培;传感器=假安培;键= ...

(由于“+酒店”一词)。所以我认为唯一的选择是使用谷歌地图响应,例如。

http://maps.google.de/maps?q=地址+酒店

并解析最后包含的JSON信息。有没有人有一些关于如何最好地完成这个的提示?

2 个答案:

答案 0 :(得分:2)

您应首先确保API不支持您所需的内容。检查文档,甚至可能达到真正的Google员工可能会有所回报。令我感到奇怪的是,他们的API不会支持像添加另一个术语一样简单的东西。

如果你被迫以“艰难的方式”这样做,有两个主要步骤:

1)查找并学习Java的JSON解析库。我可以推荐杰克逊 - 快速,坚固,刚刚发布了1.0.0版本。

2)教您的代码,以了解Google在其回复中使用的规范。这是迄今为止最具挑战性的部分。我很抱歉,但我对谷歌在该领域的规格一无所知。如果你能找到官方文档,那就是最好的。或者找到必须做类似工作的其他人发布的非官方文档。否则,您可能需要“逆向工程”。

答案 1 :(得分:2)

重新。 google api docs:它确实看起来你正在尝试做的事情违背了谷歌的意图,让你的开发者可以使用他们的产品(=地图)进行自定义增强(通过添加商业插座信息或其他)。 Google Maps API网站上有很多内容可以描述这一点。但是,解析他们的数据(从他们的数据库中出来)并独立于他们的产品显示它似乎是相当不同的:条款的第10.12节明确地涵盖了这个:

... code.google.com/intl/de/apis/maps/terms.html

然而,有些应用程序(例如“我身边的”iPhone应用程序)似乎就是这样:在这方面谷歌和苹果之间可能会有一个特殊的安排。

编辑:或者您可以通过另一种方式查看此问题并使用Google Base API Feed,因为这样可以构建指定资源,距离,位置等的查询字符串 - 即它会返回您需要的数据而不使用地图API(根据您的描述,您无论如何都不需要)。