Java 根據百度經緯度(坐標) 獲取中國街道、街道編碼


做同步第三方數據項目的時候,其中就有百度經緯度、街道字段,已知的是百度經緯度,只需要知道街道、街道行政編碼即可。

 

第一步:參考他人寫的代碼 https://blog.csdn.net/WangKun_0612/article/details/115119422


第二步:稍作改動,再根據已經寫好的http工具類進行改動

/**
     * 
     * @param lat
     * @param lon
     * @return
     */
    private JSONObject getTownByLonAndLat(String lat,String lon){
        Map<String,String> map = getMap();//參數
        map.put("ak", "SfrwGH7INvjPq7BwCrYrioBQZm9XXxrR");//申請百度開放平台KEY(ak)
        map.put("output", "json");// 輸出Json數據
        map.put("extensions_town", "true");// 行政區划返回鄉鎮級數據(town),僅國內召回鄉鎮數據
        map.put("coordtype", "wgs84ll"); // GPS 經緯度類型
        map.put("location", lat+","+lon+"");//百度經緯度
      
        String url = "http://api.map.baidu.com/reverse_geocoding/v3/";
      
        List<Header> headers = new ArrayList<>();//header
      
        String str = HttpUtil.getResult(url,map,headers);
      
        JSONObject jsonObject = JSONObject.parseObject(str);
      
        return jsonObject.getJSONObject("result").getJSONObject("addressComponent");
    }

 

HttpUtil http工具方法

    /**
     * get請求
     *
     * @param url 請求地址
     * @param map 參數集
     * @return String
     */
    public static String getResult(String url, Map<String, String> map, List<Header> headers) {
        String entityStr = null;
        try {
            entityStr = getRequestMethod(map, url, HttpGet.METHOD_NAME, headers);
        } catch (IOException e) {
            log.error("IO異常");
            e.printStackTrace();
        }
        return entityStr;
    }
/**
     * 獲取請求結果
     *
     * @param map    參數集
     * @param url    請求地址
     * @param method 請求方式
     * @return String
     * @throws IOException
     */
    public static String getRequestMethod(Map<String, String> map, String url, String method, List<Header> headers) throws IOException {
        List<NameValuePair> params = new ArrayList<>(4);
        Set<Map.Entry<String, String>> entrySet = map.entrySet();
        for (Map.Entry<String, String> e : entrySet) {
            String name = e.getKey();
            String value = e.getValue();
            NameValuePair pair = new BasicNameValuePair(name, value);
            params.add(pair);
        }
        HttpClient client = getConnection();
        HttpResponse response = client.execute(getRequestMethod(params, url, method, headers));
        if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
            HttpEntity entity = response.getEntity();
            return EntityUtils.toString(entity, StandardCharsets.UTF_8);
        } else {
            log.error("請求失敗 {}", url);
        }
        HttpEntity entity = response.getEntity();
        return EntityUtils.toString(entity, StandardCharsets.UTF_8);
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM