package com.gofun.api.utils;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import com.alibaba.fastjson.JSONObject;
import com.gofun.ms.common.util.StringUtils;
/**
* @Author ZhangYuLong
* @Description 通过经纬度使用高德接口获取地址信息
* @Date 2023/7/19 17:17
* @Version 1.0
**/
public class AddressAmapUtil {
private static final String GD_URL = "https://restapi.amap.com/v3/geocode/regeo?output=json&location=";
private static final String KEY = "6bea1713bc807ff2a805eb5533f65e91";
public static String getAddr(String longitude, String latitude){
if(StringUtils.isBlank(longitude)||StringUtils.isBlank(latitude)){
System.out.println("经纬度不能急为空");
return "";
}
String url = GD_URL+longitude+","+latitude+"&key="+KEY+"&radius=1000&extensions=all";
try {
URL apiUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) apiUrl.openConnection();
connection.setRequestMethod("GET");
connection.connect();
int responseCode = connection.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_OK) {
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
response.append(line);
}
reader.close();
JSONObject json = (JSONObject)JSONObject.parse(response.toString());
String status = json.getString("status");
if (status.equals("1")) {
JSONObject regeocode = json.getJSONObject("regeocode");
return regeocode.get("formatted_address").toString();
} else {
System.out.println("查询失败:" + json.getString("info"));
}
} else {
System.out.println("HTTP请求失败:" + responseCode);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}