Java 根据百度经纬度(坐标) 获取中国街道、街道编码


做同步第三方数据项目的时候,其中就有百度经纬度、街道字段,已知的是百度经纬度,只需要知道街道、街道行政编码即可。

第一步:参考他人写的代码 https://blog.csdn.net/WangKun_0612/article/details/115119422


第二步:稍作改动,再根据已经写好的http工具类进行改动

/**
     * 
     * @param lat
     * @param lon
     * @return
     */
    private JSONObject getTownByLonAndLat(String lat,String lon){
        Map 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
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 map, List
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 map, String url, String method, List
headers) throws IOException { List params = new ArrayList<>(4); Set> entrySet = map.entrySet(); for (Map.Entry 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); }