通过经纬度使用高德api获取具体位置

发布时间 2023-07-20 17:54:13作者: 西风51668
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;
    }

}