百度地图输入提示接口
- 地点输入提示
用户可通过该服务,匹配用户输入关键词的地点推荐列表。
在应用方面,可将地点推荐列表展示给用户,用户可通过点击等交互方式,结合地点检索服务,检索用户点击的POI信息,实现地点详情检索功能。
http://api.map.baidu.com/place/v2/suggestion?query=天安门®ion=北京&city_limit=true&output=json&ak=你的ak //GET请求
API详情参照官网文档
http://lbsyun.baidu.com/index.php?title=webapi/place-suggestion-api
1、根据官方文档创建返回值对象
创建CityAddress.java 实体类,使用idea开发可以直接在类上边添加@Data注解,就可以省去添加get 和set代码了。使用eclipse和myeclipse的记得添加下get、set 方法。
@Data
public class CityAddress {
private String stauts;
private String message;
private List<ResultDetail> result;
@Data
public class ResultDetail {
/*地址名称*/
private String name;
private Location location;
@Data
public class Location{
private String lat;
private String lng;
}
/*uid*/
private String uid;
/*所属省*/
private String province;
/*所属省市*/
private String city;
/*所属省市区*/
private String district;
/*商业*/
private String business;
/*城市code*/
private String cityid;
}
2、编写百度输入提示API接口调用方法
public static List<CityAddress.ResultDetail>cityLimit(String region, String query){
if(StringUtils.isEmpty(query))return null;
String ak = "你的ak";
// query:输入的地址
// region: 需要限制的城市,例如:region = '北京',输入火车站的时候提示的是北京市的火车站信息
String resultJson = HttpClientUtil
.doGet("http://api.map.baidu.com/place/v2/suggestion?query="+query+"®ion="+region+"&city_limit=true&output=json&ak="+ak);
System.out.println(resultJson);
//GSON直接解析成对象
CityAddress resultBean = new Gson().fromJson(resultJson,CityAddress.class);
//对象中拿到集合
List<CityAddress.ResultDetail> BeanList = resultBean.getResult();
//将拿到的集合进行处理,获取省市区和具体地理信息
for(CityAddress.ResultDetail detail : BeanList){
detail.setName(detail.getProvince()+detail.getCity()+detail.getDistrict()+detail.getName());
}
return BeanList;
}
3、测试
成功!!