示例代码:
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.net.URL;
public class AddressUntils {
private final static Logger logger = LoggerFactory.getLogger(AddressUntils.class);
public static void main(String[] args) {
// lat 31.2990170 纬度
//log 121.3466440 经度
String add = AddressUntils.getAdd("121.3466440", "31.2990170");
logger.info(add);
}
/**
*根据经纬度获取省市区
* @param log
* @param lat
* @return
*/
public static String getAdd(String log, String lat ) {
//lat 小 log 大
//参数解释: 纬度,经度 采用高德API可参考高德文档https://lbs.amap.com/
String key = "4f979382885e4f573ba0fb1298eb7f13";
String urlString = "https://restapi.amap.com/v3/geocode/regeo?location=" + lat + "," + log + "&extensions=base&batch=false&roadlevel=0&key=" + key;
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();
//解析结果
JSONObject jsonObject = JSONObject.parseObject(res);
logger.info(jsonObject.toJSONString());
JSONObject jsonObject1 = jsonObject.getJSONObject("regeocode");
res = jsonObject1.getString("formatted_address");
} catch (Exception e) {
logger.error("获取地址信息异常{}", e.getMessage());
return null;
}
return res;
}
}
原文连接:https://blog.csdn.net/qq_35491812/article/details/81504440
文章评论