2013-02-21 80 views
0

我一直在关注一个伟大的教程,允许用户输入邮编,然后ListView显示与邮编匹配的全球各地的地点。一旦单击了填充的ListView中的地址,它的位置就会通过mapView上的标记显示出来。从geonames执行Google API搜索

我已经完成了本教程,并且一直在处理HTTP Web服务。目前代码正在使用'geonames'数据库的在线服务来查询提供的邮政编码我现在想要将Google API应用到我的代码中以搜索超市。

的GEONAMES使用来自所提供的邮政编码以下列格式的JSON响应:

{"postalCodes":[{"adminName2":"El Paso","adminCode2":"041","adminCode1":"CO","postalCode":"80907","countryCode":"US","lng":-104.817034,"placeName":"Colorado Springs","lat":38.876001,"adminName1":"Colorado"}]} 

上述字符串是从“80907”一个邮政编码。

这是GEONAMES的字符串URL:

private static final String GEONAME_RESTURL 
    = "http://api.geonames.org/postalCodeSearchJSON?maxRows=8&username=demo&postalcode="; 

我已阅读谷歌API文档,发现以下“附近搜索request'search字符串:

https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=-33.8670522,151.1957362&radius=500&types=food&name=harbour&sensor=false&key=AddYourOwnKeyHere 

这里是代码返回的邮政编码匹配:

DataWrapper wrap = new DataWrapper(); 
wrap = wrap.fromJson(responseString); 
return wrap.postalCodes; 

我怎样才能找到这个如上所示返回的JSON搜索字符串与超市的Google搜索字符串的geoname结果?

我意识到我可以修复搜索半径到指定的数字,但我想接收匹配我的搜索字符串列出超市。

希望我已经清楚这个问题!

回答

1

看起来我设法通过简单地使用geonames API来解决这个问题。我不确定它是否像谷歌API一样完整,但它的注册非常值得。