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();
}
}
百度地图 java 根据地址获取经纬度
最新推荐文章于 2024-07-18 09:38:15 发布