经纬度转地址

最近在写的一个项目需要进行一个经纬度转换为地理位置的工具类 
然后写在博客里面提供给大家使用

  /**
       * 经纬度转换地址json
       * @param lat 经度
       * @param log 纬度
       * @return json对象province代表省city代表市county代表县
       */
      public static JSONObject TranslateAdd(String lat, String log ){ 
        //阿里云地图调用(100代表道路,010代表兴趣点,001代表门址,111可以同时显示前三项)
        //构造URL
        String urlString = "http://gc.ditu.aliyun.com/regeocoding?l="+lat+","+log+"&type=010"; 
        String res = "";   
        try {   
          //先进行请求
          URL url = new URL(urlString);  
          HttpURLConnection conn = (HttpURLConnection)url.openConnection();  
          //设置可输入
          conn.setDoOutput(true);  
          //请求方式为POST
          conn.setRequestMethod("POST");  
          //提取获得的数据
          BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));  
          String line;  
          while ((line = in.readLine()) != null) {  
            res += line+"\n";  
         }  
          //关闭连接
          in.close();  
        } catch (Exception e) {  
          System.out.println(e.getMessage());  
        }  
        if(res!=null&&!res.equals(""))
        {
            //此处可根据自己情况进行封装 此jsonObject为获得的所有数据构建的Json
            JSONObject jsonObject = JSONObject.fromObject(res); 
            JSONArray jsonssxay = JSONArray.fromObject(jsonObject.getString("addrList")); 
            JSONObject j_2 = JSONObject.fromObject(jsonssxay.get(0)); 
            String allAdd = j_2.getString("admName"); 
            String ssx[] = allAdd.split(","); 
            if(ssx.length==3)
            {
            JSONObject address = new JSONObject();
            address.put("province", ssx[0]);
            address.put("city", ssx[1]);
            address.put("county", ssx[2]);
            System.err.println("省市县"+ssx[0]+" "+ssx[1]+" "+" "+ssx[2]);
            return address;
            }
            return null;
        }else
        {
            return null;
        }
      } 

进行测试

        JSONObject a = TranslateAdd("34.350178", "108.949324");
        System.out.println("省市县"+a.toString());

结果 

[陕西省, 西安市, 未央区] 
省市县陕西省 西安市 未央区 
省市县{"province":"陕西省","city":"西安市","county":"未央区"}

猜你喜欢

转载自blog.csdn.net/u014379639/article/details/81624300