我一直在关注一个很棒的教程,它允许用户输入邮政编码,然后 ListView 显示全球与邮政编码匹配的地方。单击填充的 ListView 中的地址后,其位置将由 mapView 上的标记显示。
我已经完成了本教程,并且已经掌握了 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”。
这是地名的字符串 URL:
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 超市搜索字符串的地理名称结果?
我意识到我可以将搜索半径固定为指定的数字,但我想接收我的搜索字符串的匹配项以列出超市。
希望我对这个问题已经足够清楚了!