package com.xapc;
import java.net.URL;
import java.util.Map;
import java.util.HashMap;
import java.io.IOException;
import java.io.InputStream;
import java.net.URLConnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class BaiduAPI {
private static String ak = "5ef2641d89438a6e708db122820cf1d2";
public static Map<String, String> testPost(String address) throws IOException {
// URL url2 = new URL("http://api.map.baidu.com/geocoder?" + ak + "=ewRtG8NPkxfayU8996iCUy0k" +
// "&callback=renderReverse&location=" + x
// + "," + y + "&output=json");
/**
* 然后把连接设为输出模式。URLConnection通常作为输入来使用,比如下载一个Web页。
* 通过把URLConnection设为输出,你可以把数据向你个Web页传送。下面是如何做:
*/
//address宁波市北仑区戚家山街道科苑路17弄13号
URL url2 = new URL("http://api.map.baidu.com/geocoder/v2/?address="+address+"&output=json&ak=ewRtG8NPkxfayU8996iCUy0k&callback=showLocation");
URLConnection connection = url2.openConnection();
connection.setDoOutput(true);
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "utf-8");
out.flush();
out.close();
// 一旦发送成功,用以下方法就可以得到服务器的回应:
String res;
InputStream l_urlStream = connection.getInputStream();
BufferedReader in = new BufferedReader(new InputStreamReader(l_urlStream,"UTF-8"));
StringBuilder sb = new StringBuilder("");
while ((res = in.readLine()) != null) {
sb.append(res.trim());
}
String str = sb.toString();
System.out.println(str);
Map<String,String> map = null;
if(str != null) {
//map = new HashMap<String,String>();
int addStart = str.indexOf("lng\":");
int addEnd = str.indexOf(",\"lat\"");
int latStart = str.indexOf("lat\":");
int latEnd = str.indexOf("},\"precise\"");
if(addStart > 0 && addEnd > 0 && latStart>0 && latEnd>0) {
String lng = str.substring(addStart+5, addEnd);
String lat = str.substring(latStart+5,latEnd);
System.out.println(lat);
map = new HashMap<String,String>();
map.put("address", lng);
return map;
}
}
return null;
}
public static void main(String[] args) throws IOException {
Map<String, String> json = BaiduAPI.testPost("宁波市北仑区戚家山街道科苑路17弄13号");
System.out.println("address :" + json.get("address"));
}
}