您的位置:首页 > 编程语言 > Java开发

百度地图 java 根据地址获取经纬度

2017-01-13 17:41 661 查看
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();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: