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 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 map = null; if(str != null) { //map = new HashMap(); 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(); map.put("address", lng); return map; } } return null; } public static void main(String[] args) throws IOException { Map json = BaiduAPI.testPost("宁波市北仑区戚家山街道科苑路17弄13号"); System.out.println("address :" + json.get("address")); } }