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; } }