百度地圖 java 根據地址獲取經緯度

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.Map;

import net.sf.json.JSONObject;

/**
 * 經緯度工具類
 * 
 * @author WangMeng
 */
public class LngAndLatUtils
{
	/**
	 * 輸入地址調用百度api獲取經緯度
	 * 
	 * @param address
	 * @return 經度緯度的map
	 * @author SunQiChao
	 * @Date 2015年9月2日
	 */
	public static Map<String, Double> getLngAndLat(String address, String key)
	{
		Map<String, Double> map = new HashMap<String, Double>();
		// 調用百度接口
		String url = "http://api.map.baidu.com/geocoder/v2/?address=" + address
				+ "&output=json&ak=" + key;
		String json = loadJSON(url);
		JSONObject obj = JSONObject.fromObject(json);
		if (obj.get("status").toString().equals("0"))
		{
			double lng = obj.getJSONObject("result").getJSONObject("location").getDouble("lng");
			double lat = obj.getJSONObject("result").getJSONObject("location").getDouble("lat");
			map.put("lng", lng);
			map.put("lat", lat);
		}
		return map;
	}
	/**
	 * 處理url和所帶的參數
	 * 
	 * @param url
	 * @return
	 * @author SunQiChao
	 * @Date 2015年9月2日
	 */
	public static String loadJSON(String url)
	{
		StringBuilder json = new StringBuilder();
		try
		{
			URL oracle = new URL(url);
			URLConnection yc = oracle.openConnection();
			BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream()));
			String inputLine = null;
			while ((inputLine = in.readLine()) != null)
			{
				json.append(inputLine);
			}
			in.close();
		}
		catch (MalformedURLException e)
		{
		}
		catch (IOException e)
		{
		}
		return json.toString();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章