到了一个较陌生的环境,经常会在周边找一些基础设施,比如银行,商场,餐厅等(还有一种更急切的是找厕所)。通过百度提供的地图API,可以在你的应用中简单做到,详情可阅读
Place API。我们以查找周边银行作为示例,需确定的参数至少有三个,要查找的位置的经度和纬度,需要查找的内容的类型或是关键字。
public
String getPalace(String query,String lat,String lng)
throws
ClientProtocolException, IOException{
HttpClient httpClient = new DefaultHttpClient();
String url = palceRequestUrl(query,lat,lng);
logger.log(Level.INFO, url);
HttpGet httpget = new HttpGet(url);
ResponseHandler < String > responseHandler = new BasicResponseHandler();
String responseBody = httpClient.execute(httpget, responseHandler); // 位置xml
logger.log(Level.INFO, " baidu response: " + responseBody);
return responseBody;
}
public String palceRequestUrl(String query,String lat,String lng) throws UnsupportedEncodingException {
String url = WeChatConstant.BASEURL + " place/search?query= " + URLEncoder.encode(query, " UTF-8 " ) + " &key= "
+ WeChatConstant.MAPKEY + " &location= " + lat + " , " + lng + " &radius=2000 " + " &output= " + WeChatConstant.OUTPUTFORMAT;
return url;
}
HttpClient httpClient = new DefaultHttpClient();
String url = palceRequestUrl(query,lat,lng);
logger.log(Level.INFO, url);
HttpGet httpget = new HttpGet(url);
ResponseHandler < String > responseHandler = new BasicResponseHandler();
String responseBody = httpClient.execute(httpget, responseHandler); // 位置xml
logger.log(Level.INFO, " baidu response: " + responseBody);
return responseBody;
}
public String palceRequestUrl(String query,String lat,String lng) throws UnsupportedEncodingException {
String url = WeChatConstant.BASEURL + " place/search?query= " + URLEncoder.encode(query, " UTF-8 " ) + " &key= "
+ WeChatConstant.MAPKEY + " &location= " + lat + " , " + lng + " &radius=2000 " + " &output= " + WeChatConstant.OUTPUTFORMAT;
return url;
}
Junit测试
@Test
public void testGetBaiduPlace() throws Exception{
BaiduMapService bms = new BaiduMapService();
String response = bms.getPalace( " 银行 " , " 39.915 " , " 116.404 " );
List < BaiduPlaceResponse > list = BaiduPlaceResponse.getBaiduPlace(response);
for (BaiduPlaceResponse res:list){
System.out.println(res.toString());
}
}
public void testGetBaiduPlace() throws Exception{
BaiduMapService bms = new BaiduMapService();
String response = bms.getPalace( " 银行 " , " 39.915 " , " 116.404 " );
List < BaiduPlaceResponse > list = BaiduPlaceResponse.getBaiduPlace(response);
for (BaiduPlaceResponse res:list){
System.out.println(res.toString());
}
}
输出内容(省略部分内容)
<?
xml version="1.0" encoding="utf-8"
?>
< PlaceSearchResponse >
< status > OK </ status >
< results >
< result >
< name > 中国工商银行东长安街支行 </ name >
< location >
< lat > 39.915891 </ lat >
< lng > 116.41867 </ lng >
</ location >
< address > 东城区东长安街1号东方广场西三办公楼1楼 </ address >
< uid > a025683c73033c35a21de987 </ uid >
< detail_url > http://api.map.baidu.com/place/detail?uid=a025683c73033c35a21de987 & amp;output=html & amp;source=placeapi </ detail_url >
< tag > 银行,王府井/东单 </ tag >
</ result >
</ results >
</ PlaceSearchResponse >
BaiduPlaceResponse [name=中国工商银行东长安街支行, telephone=null, address=东城区东长安街1号东方广场西三办公楼1楼, lat=39.915891, lng=116.41867, tag=null, detailUrl=http://api.map.baidu.com/place/detail?uid=a025683c73033c35a21de987 & output=html & source=placeapi]
< PlaceSearchResponse >
< status > OK </ status >
< results >
< result >
< name > 中国工商银行东长安街支行 </ name >
< location >
< lat > 39.915891 </ lat >
< lng > 116.41867 </ lng >
</ location >
< address > 东城区东长安街1号东方广场西三办公楼1楼 </ address >
< uid > a025683c73033c35a21de987 </ uid >
< detail_url > http://api.map.baidu.com/place/detail?uid=a025683c73033c35a21de987 & amp;output=html & amp;source=placeapi </ detail_url >
< tag > 银行,王府井/东单 </ tag >
</ result >
</ results >
</ PlaceSearchResponse >
BaiduPlaceResponse [name=中国工商银行东长安街支行, telephone=null, address=东城区东长安街1号东方广场西三办公楼1楼, lat=39.915891, lng=116.41867, tag=null, detailUrl=http://api.map.baidu.com/place/detail?uid=a025683c73033c35a21de987 & output=html & source=placeapi]
原创文章,转载请注明: 转载自http://www.qiyadeng.com/
本文链接地址: 周边信息查询