根据经纬度查询地址
来源:互联网 发布:淘宝客服聊天字体颜色 编辑:程序博客网 时间:2024/05/01 14:41
import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;import java.util.HashMap;import java.util.Iterator;import java.util.Map;import org.json.JSONException;import org.json.JSONObject;import cn.eeepay.cache.SystemParamsCache;import cn.toruk.pub.Log;/*** * 根据经纬度,查百度的API得到地址 * * @author */public class GetAdressByBaidu {/** * @Description:返回JSON格式的,根据经纬度找到的地址 ,传入的经纬度 如:39.917149,116.421516 * 错误返回,null; 正确返回 * 例:{"result":{"addressComponent" * :{"street" :"东单三条","province":"北京市", * "street_number" * :"9号","district":"东城区","city" * :"北京市"},"location" * :{"lng":116.421516,"lat" * :39.917149},"cityCode" * :131,"formatted_address" * :"北京市东城区东单三条9号", * "business":"东单,王府井,灯市口"},"status":"OK"} * @author 张红亮 * @date 2014-3-27 上午10:19:14 */public static JSONObject getCoordinate(String latAndLng) {JSONObject jsonObject = null;if (null != latAndLng && StringUtils.isNotBlank(latAndLng)) {StringBuffer resultBuffer = new StringBuffer();String key = SystemParamsCache.getParamValue("BAIDU_API_KEY");// String key = "=NQWAkrl87NqPEjNjzTYLh3TR";String url = String.format("http://api.map.baidu.com/geocoder?output=json&location=%s&key=%s",latAndLng, key);URL baiDuUrl = null;URLConnection httpsConn = null;InputStreamReader insr = null;BufferedReader br = null;try {baiDuUrl = new URL(url);httpsConn = (URLConnection) baiDuUrl.openConnection();// 不使用代理if (httpsConn != null) {insr = new InputStreamReader(httpsConn.getInputStream(),"UTF-8");br = new BufferedReader(insr);String data = null;while ((data = br.readLine()) != null) {resultBuffer.append(data);}}jsonObject = new JSONObject(resultBuffer.toString());} catch (Exception e) {Log.print("取百度的地址错误--》", e);} finally {try {if (insr != null) {insr.close();}if (br != null) {br.close();}} catch (Exception n) {Log.print("取百度的地址错误--》", n);}}}return jsonObject;}/** * 将JSON对象,转换后放到MAP并返回 * * @author 张红亮 * @date 2014-3-27 上午10:19:14 * @param map * 传入要加入值的MAP * @param resultMap * 返回传入的MAP * @return 根据getCoordinate方法取的JSON对象再转为MAP * 例:result--{"addressComponent":{"street" * :"东单三条","province":"北京市","street_number" * :"9号","district":"东城区","city" * :"北京市"},"location":{"lng":116.421516, * "lat":39.917149},"cityCode":131 * ,"formatted_address":"北京市东城区东单三条9号","business":"东单,王府井,灯市口"} * status--OK location--{"lng":116.421516,"lat":39.917149} * street--东单三条 cityCode--131 lng--116.421516 business--东单,王府井,灯市口 * city--北京市 * addressComponent--{"street":"东单三条","province":"北京市","street_number" * :"9号","district":"东城区","city":"北京市"} province--北京市 * formatted_address--北京市东城区东单三条9号 street_number--9号 district--东城区 * lat--39.917149 */@SuppressWarnings("unchecked")public static Map<String, String> getMapKeyValue(JSONObject map,Map<String, String> resultMap) {try {Iterator it = map.keys();while (it.hasNext()) {String key = (String) it.next();String value = map.getString(key);resultMap.put(key, value);Object array = map.get(key);if (array instanceof JSONObject) {getMapKeyValue((JSONObject) array, resultMap);}}} catch (JSONException e) {Log.print("解析地址失败!", e);}return resultMap;}/** * 根据返回的数据,取到省,市,区的值放入,MAP中并返回 * * @author 张红亮 * @date 2014-3-27 上午10:19:14 key---province ,city ,area * @param latAndLng * 经纬度值 * @param resultMap * 需传入的MAP * @return */public static Map<String, String> getProCitAreValue(String latAndLng,Map<String, String> resultMap) {Map<String, String> valueMap = getMapKeyValue(getCoordinate(latAndLng),resultMap);resultMap.put("province", valueMap.get("province"));resultMap.put("city", valueMap.get("city"));resultMap.put("area", valueMap.get("district"));return resultMap;}/** * @param args */public static void main(String[] args) throws Exception {JSONObject map = getCoordinate("39.917149,116.421516");Map<String, String> map2 = new HashMap<String, String>();map2 = getMapKeyValue(map, map2);Iterator<String> it = map2.keySet().iterator();while (it.hasNext()) {String key = (String) it.next();String value = (String) map2.get(key);System.out.println(key + "--" + value);}}}
0 0
- 根据经纬度查询地址
- 根据地址查询经纬度
- 根据地址查询经纬度
- 根据地址查询经纬度
- 根据地址查询经纬度
- 根据地址获取经纬度
- 根据地址获取经纬度
- 根据经纬度获取地址
- 百度地图API之根据经纬度查询地址信息(Android)
- 百度地图API之根据经纬度查询地址信息(Android)
- 根据地址的经纬度查询周围的城市
- 百度地图API之根据经纬度查询地址信息(Android)
- 百度地图5之根据经纬度查询地址信息(Android) .
- 百度地图API之根据经纬度查询地址信息(Android)
- 百度地图API之根据经纬度查询地址信息(Android)
- 百度地图API之根据经纬度查询地址信息(Android)
- 百度地图API之根据经纬度查询地址信息(Android)
- 根据地址查询经纬度IP(百度地图)
- android 中观察者的使用
- ZZ的橱柜
- 动态内存管理
- 使用impdp导入失败ORA-31634(转)
- 实时计算开发-Storm从入门到精通【价值250】
- 根据经纬度查询地址
- linux 病毒 sfewfesfs
- mysql修改密码
- To be an software enginneer.
- HDU 1022 Train Problem I
- MySQL主从设定
- XMPP协议学习笔记三(Openfire服务器端搭建开发环境)
- 炼数成金——基于案例学SQL优化
- 关于编译型语言函数的调用(一)