package com.matrix.system.shopXcx.api.tools;
|
|
import java.io.IOException;
|
import java.net.URL;
|
import com.matrix.core.tools.LogUtil;
|
import com.matrix.system.shopXcx.api.pojo.AddressUntilsPOJO;
|
import net.sf.json.JSONObject;
|
/**
|
* @author wlz
|
* 根据经纬度获取省市区
|
* 通过百度地图API
|
*/
|
public class AddressUntils {
|
|
/**
|
* 根据经纬度查询
|
* @param log
|
* @param lat
|
* @return
|
*/
|
public static AddressUntilsPOJO getAdd(String log, String lat ){
|
//lat 小 log 大
|
//参数解释: 纬度,经度 type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)
|
String urlString = "http://api.map.baidu.com/geocoder/v2/?ak=byxpjOG965GXUYDnBlCNvYaBxOu2FsMv&callback=renderReverse&location="+ lat + "," + log + "&output=json&pois=1";
|
String res = "";
|
try {
|
URL url = new URL(urlString);
|
java.net.HttpURLConnection conn = (java.net.HttpURLConnection)url.openConnection();
|
conn.setDoOutput(true);
|
conn.setRequestMethod("POST");
|
java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream(),"UTF-8"));
|
String line;
|
while ((line = in.readLine()) != null) {
|
res += line+"\n";
|
}
|
in.close();
|
} catch (Exception e) {
|
System.out.println("error in wapaction,and e is " + e.getMessage());
|
LogUtil.error("根据经纬度获取省市区异常", e);
|
}
|
System.out.println(res);
|
LogUtil.info("根据经纬度获取省市区res。。。"+res);
|
String ns= res.substring(res.indexOf("{"),res.lastIndexOf("}")+1);
|
LogUtil.info("根据经纬度获取省市区截取json。。。"+ ns);
|
JSONObject jsonObject = JSONObject.fromObject(ns);
|
JSONObject jsonObj = JSONObject.fromObject(jsonObject.getString("result"));
|
JSONObject jsonData = jsonObj.getJSONObject("addressComponent");
|
LogUtil.info("根据经纬度获取省市区jsonData。。。"+ jsonData);
|
AddressUntilsPOJO address = new AddressUntilsPOJO();
|
address.setProvince(jsonData.get("province").toString());
|
address.setCity(jsonData.get("city").toString());
|
address.setDistrict(jsonData.get("district").toString());
|
LogUtil.info("根据经纬度获取省市区AddressUntilsPOJO。。。"+ address);
|
return address;
|
}
|
|
public static void main(String[] args) throws IOException {
|
AddressUntilsPOJO address = getAdd("113.095505", "28.260786");
|
System.out.println(address);
|
}
|
|
|
}
|