java 根据经纬度获取地址实现代码

时间:2022-11-10 17:45:00

 java 根据经纬度获取地址实现代码

实现代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class GetLocation {
  public static void main(String[] args) {
    // lat 39.97646   
    //log 116.3039 
    String add = getAdd("116.3039", "39.97646");
    JSONObject jsonObject = JSONObject.fromObject(add);
    JSONArray jsonArray = JSONArray.fromObject(jsonObject.getString("addrList"));
    JSONObject j_2 = JSONObject.fromObject(jsonArray.get(0));
    String allAdd = j_2.getString("admName");
    String arr[] = allAdd.split(",");
    System.out.println("省:"+arr[0]+"\n市:"+arr[1]+"\n区:"+arr[2]);
  }
   
  public static String getAdd(String log, String lat ){
    //lat 小 log 大
    //参数解释: 纬度,经度 type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)
    String urlString = "http://gc.ditu.aliyun.com/regeocoding?l="+lat+","+log+"&type=010";
    String res = "";  
    try {  
      URL url = new URL(urlString); 
      java.net.HttpURLConnection conn = (java.net.HttpURLConnection)url.openConnection(); 
      conn.setDoOutput(true); 
      conn.setRequestMethod("POST"); 
      java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(conn.getInputStream(),"UTF-8")); 
      String line; 
      while ((line = in.readLine()) != null) { 
        res += line+"\n"
     
      in.close(); 
    } catch (Exception e) { 
      System.out.println("error in wapaction,and e is " + e.getMessage()); 
    
    System.out.println(res);
    return res; 
  }
   
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/u011072139/article/details/46428065