獲取百度地圖的某個經緯度最近的地名
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import org.json.JSONArray; import org.json.JSONObject; public class ReverseGeoCoding { private static final String BAIDU_MAP_API_URL = "http://api.map.baidu.com/reverse_geocoding/v3/?"; private static final String AK = "your_ak_here"; // 替換成你自己的百度地圖開發者AK public static String getNearestLocation(double lat, double lng) { try { // 組裝請求URL StringBuilder sb = new StringBuilder(BAIDU_MAP_API_URL); sb.append("ak=").append(AK).append("&"); sb.append("output=json&"); sb.append("coordtype=wgs84ll&"); sb.append("location=").append(lat).append(",").append(lng); // 發送HTTP請求 URL url = new URL(sb.toString()); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setConnectTimeout(5000); conn.setReadTimeout(5000); // 解析JSON數據 BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); StringBuilder result = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); conn.disconnect(); JSONObject json = new JSONObject(result.toString()); int status = json.getInt("status"); if (status == 0) { JSONObject resultObj = json.getJSONObject("result"); JSONArray pois = resultObj.getJSONArray("pois"); if (pois.length() > 0) { JSONObject poi = pois.getJSONObject(0); return poi.getString("name"); } } } catch (Exception e) { e.printStackTrace(); } return null; } public static void main(String[] args) { // 測試獲取某個經緯度最近的地名 double lat = 39.915291; double lng = 116.403857; String nearestLocation = getNearestLocation(lat, lng); System.out.println("經度:" + lng + ",緯度:" + lat + ",最近的地名:" + nearestLocation); } }
在代碼中,getNearestLocation 方法接收一個經緯度坐標作為輸入參數,并調用百度地圖的逆地址解析 API 獲取該坐標最近的地名。該方法返回一個字符串,表示最近的地名。在 main 方法中,我們輸入了一個經緯度坐標,調用 getNearestLocation 方法獲取最近的地名,并將結果輸出到控制臺。請注意,代碼中的 AK 變量需要替換為你自己的百度地圖開發者AK。
學習時的痛苦是暫時的 未學到的痛苦是終生的
作者:卷心菜的奇妙歷險
本文版權歸作者和博客園共有,遵循 CC 4.0 BY-SA 版權協議,歡迎轉載 轉載請附上原文出處鏈接和本聲明,否則保留追究法律責任的權利。

浙公網安備 33010602011771號