根据map坐标经纬度返回相应的地理位置

根据地图坐标经纬度返回相应的地理位置

 

 根据gprs坐标经纬度返回对应的地址:

这里采用的是阿里云地图 ,使用的坐标是火星坐标,如果用百度地图或者其他地图坐标系需要转换坐标

 /**

     * @author lizhiyuan

     * 定义通过经纬度返回地理位置信息

     * @param lat

     * @param log

     * @return

     */

 public static String getAdd( String lat,String log){  

        //lat 小  log  大  

        //参数解释: 经度,纬度, type 001 (100代表道路,010代表POI,001代表门址,111可以同时显示前三项)  

        String urlString = "http://gc.ditu.aliyun.com/regeocoding?l="+lat+","+log+"&type=111";  

        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());    

        }   

        JSONObject jsonObject = JSONObject.fromObject(res);  

        JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("addrList"));  

        JSONObject j_2 = JSONObject.fromObject(jsonArray.get(0));  

        String area = j_2.getString("admName"); 

        String address=null;

        if(area!=null&&!area.equals("")){

        String arrs[] = area.split(",");    

            String arr= j_2.getString("name");

            address=arrs[0]+arrs[1]+arrs[2]+arr;

        }else{

        address="";

        }

        

        

        return address;    

    }  

  测试方法:

   public static void main(String[] args) {  

        String add = getAdd("23.1745663888889","114.570925555556");  

        System.out.println(add);

    } 

  测试结果:

  广东省惠州市惠城区S21广惠高速