申请百度开放平台KEY(ak)没申请,随便找了一个
参数说明:
extensions_town:行政区划返回乡镇级数据(town),仅国内召回乡镇数据
coordtype:坐标的类型 bd09ll(百度经纬度坐标)、bd09mc(百度米制坐标)、gcj02ll(国测局经纬度坐标,仅限中国)、wgs84ll( GPS经纬度)
/*** @Description 根据经纬度获取乡镇* @param lat* @param lng* @Throws* @Return java.lang.String* @Date -03-22 17:50:36* @Author WangKun**/public static String getTownByLatAndLng(String lat,String lng) {try {String urlAddress = "http://api./reverse_geocoding/v3/?ak=SfrwGH7INvjPq7BwCrYrioBQZm9XXxrR&output=json&extensions_town=true&coordtype=wgs84ll&location="+lat+","+lng+"";StringBuilder sb = new StringBuilder();URL url = new URL(urlAddress);URLConnection connection = url.openConnection();if (connection != null) {InputStreamReader insr = new InputStreamReader(connection.getInputStream(), StandardCharsets.UTF_8);BufferedReader br = new BufferedReader(insr);String data;while ((data = br.readLine()) != null) {sb.append(data);}insr.close();}String str = sb.toString();if (StringUtils.isNotBlank(str) && StringUtils.isNotEmpty(str)) {JSONObject json = JSON.parseObject(str);if (json.getInteger("status") == 0){return json.getJSONObject("result").getJSONObject("addressComponent").getString("town");}}} catch (IOException e) {e.printStackTrace();}return null;}