我一直在关注一个允许用户输入邮政编码的精彩教程,然后ListView会在全球范围内显示与邮政编码匹配的地方。单击填充的ListView中的地址后,其位置将由mapView上的标记显示。
我已经完成了本教程,并且已经掌握了HTTP Web服务。目前,代码正在使用“geonames”数据库中的在线服务来查询提供的邮政编码我现在想在我的代码中实施Google API以搜索超市。
地理名称使用来自提供的邮政编码的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'。
这是地理名称的字符串网址:
private static final String GEONAME_RESTURL
= "http://api.geonames.org/postalCodeSearchJSON?maxRows=8&username=demo&postalcode=";
我已阅读Google API文档,并找到了以下“附近搜索请求”搜索字符串:
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结果?
我意识到我可以将搜索半径修改为指定的数字,但我希望收到搜索字符串的匹配项以列出超市。
希望我对这个问题已经足够清楚了!。
答案 0 :(得分:1)
看起来我设法通过简单地使用geonames API来解决这个问题。我不确定它是否像Google API一样完整,但非常值得注意。