要使用百度地图的api就要先建立连接,调用百度地图的API,然后调用的百度地图接口会返回相应的信息,对于返回的数据不能直接读取,而需通过数据流获取,下面为从网上找的连接及读取的代码:
public static String connectURL(String dest_url, String commString) {
String rec_string = "";
URL url = null;
HttpURLConnection urlconn = null;
OutputStream out = null;
BufferedReader rd = null;
try {
url = new URL(dest_url);
urlconn = (HttpURLConnection) url.openConnection();
urlconn.setReadTimeout(1000 * 30);
urlconn.setRequestMethod("POST");
urlconn.setDoInput(true);
urlconn.setDoOutput(true);
out = urlconn.getOutputStream();
out.write(commString.getBytes("UTF-8"));
out.flush();
out.close();
rd = new BufferedReader(new InputStreamReader(urlconn.getInputStream(),"UTF-8"));
StringBuffer sb = new StringBuffer();
int ch;
while ((ch = rd.read()) > -1)
sb.append((char) ch);
rec_string = sb.toString();
} catch (Exception e) {
return "";
} finally {
try {
if (out != null) {
out.close();
}
if (urlconn != null) {
urlconn.disconnect();
}
if (rd != null) {
rd.close();
}
} catch (Exception e) {
}
}
return rec_string;
}
很感谢网友的分享,具体地址找不到了,很抱歉!
连接及读取的方法已经有了,剩下的就是调用这方法就好了,例如:
String url = "http://api.map.baidu.com/direction/v1?mode=driving&origin=清华大学&destination=北京大学&origin_region=北京&destination_region=北京&output=json&ak=您的ak";
String result =MapUtil.connectURL(url,"");
此时result中的数据即是想要的对应的结果;调用其他的百度地图api只需参考API文档,加入对应的参数就可以了。
JAVA创建连接,解析返回结果
//连接及解析高德地图
public static String getResponse(String serverUrl){
//用JAVA发起http请求,并返回json格式的结果
StringBuffer result = new StringBuffer();
try {
URL url = new URL(serverUrl);
URLConnection conn = url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));
String line;
while((line = in.readLine()) != null){
result.append(line);
}
in.close();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return result.toString();
}