转 GCJ02坐标系和WGS84转换

高德api https://lbs.amap.com/api/webservice/guide/api/convert

高德jsapi https://lbs.amap.com/api/javascript-api/guide/transform/convertfrom

 

http://www.voidcn.com/article/p-vqdrhuku-qq.html

https://github.com/wandergis/coordtransform

https://lbs.amap.com/api/webservice/guide/api/convert

HttpRequest.java

  1 import java.io.BufferedReader;
  2 import java.io.IOException;
  3 import java.io.InputStreamReader;
  4 import java.io.PrintWriter;
  5 import java.net.URL;
  6 import java.net.URLConnection;
  7 import java.util.List;
  8 import java.util.Map;
  9 
 10 public class HttpRequest {
 11     /**
 12      * 向指定URL发送GET方法的请求
 13      * 
 14      * @param url
 15      *            发送请求的URL
 16      * @param param
 17      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
 18      * @return URL 所代表远程资源的响应结果
 19      */
 20     public static String sendGet(String url, String param) {
 21         String result = "";
 22         BufferedReader in = null;
 23         try {
 24             String urlNameString = url + "?" + param;
 25             URL realUrl = new URL(urlNameString);
 26             // 打开和URL之间的连接
 27             URLConnection connection = realUrl.openConnection();
 28             // 设置通用的请求属性
 29             connection.setRequestProperty("accept", "*/*");
 30             connection.setRequestProperty("connection", "Keep-Alive");
 31             connection.setRequestProperty("user-agent",
 32                     "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
 33             // 建立实际的连接
 34             connection.connect();
 35             // 获取所有响应头字段
 36             Map<String, List<String>> map = connection.getHeaderFields();
 37             // 遍历所有的响应头字段
 38             for (String key : map.keySet()) {
 39                 System.out.println(key + "--->" + map.get(key));
 40             }
 41             // 定义 BufferedReader输入流来读取URL的响应
 42             in = new BufferedReader(new InputStreamReader(
 43                     connection.getInputStream()));
 44             String line;
 45             while ((line = in.readLine()) != null) {
 46                 result += line;
 47             }
 48         } catch (Exception e) {
 49             System.out.println("发送GET请求出现异常!" + e);
 50             e.printStackTrace();
 51         }
 52         // 使用finally块来关闭输入流
 53         finally {
 54             try {
 55                 if (in != null) {
 56                     in.close();
 57                 }
 58             } catch (Exception e2) {
 59                 e2.printStackTrace();
 60             }
 61         }
 62         return result;
 63     }
 64 
 65     /**
 66      * 向指定 URL 发送POST方法的请求
 67      * 
 68      * @param url
 69      *            发送请求的 URL
 70      * @param param
 71      *            请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
 72      * @return 所代表远程资源的响应结果
 73      */
 74     public static String sendPost(String url, String param) {
 75         PrintWriter out = null;
 76         BufferedReader in = null;
 77         String result = "";
 78         try {
 79             URL realUrl = new URL(url);
 80             // 打开和URL之间的连接
 81             URLConnection conn = realUrl.openConnection();
 82             // 设置通用的请求属性
 83             conn.setRequestProperty("accept", "*/*");
 84             conn.setRequestProperty("connection", "Keep-Alive");
 85             conn.setRequestProperty("user-agent",
 86                     "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
 87             // 发送POST请求必须设置如下两行
 88             conn.setDoOutput(true);
 89             conn.setDoInput(true);
 90             // 获取URLConnection对象对应的输出流
 91             out = new PrintWriter(conn.getOutputStream());
 92             // 发送请求参数
 93             out.print(param);
 94             // flush输出流的缓冲
 95             out.flush();
 96             // 定义BufferedReader输入流来读取URL的响应
 97             in = new BufferedReader(
 98                     new InputStreamReader(conn.getInputStream()));
 99             String line;
100             while ((line = in.readLine()) != null) {
101                 result += line;
102             }
103         } catch (Exception e) {
104             System.out.println("发送 POST 请求出现异常!"+e);
105             e.printStackTrace();
106         }
107         //使用finally块来关闭输出流、输入流
108         finally{
109             try{
110                 if(out!=null){
111                     out.close();
112                 }
113                 if(in!=null){
114                     in.close();
115                 }
116             }
117             catch(IOException ex){
118                 ex.printStackTrace();
119             }
120         }
121         return result;
122     }    
123 }

xxController.java

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@Controller
@RequestMapping("/xx")
public class xxController {

    
    @AuthPassport
    @RequestMapping(value = "/test", method = RequestMethod.POST)
    @ResponseBody
    public Map<String, Object> test(String lat, String lon) {
        StringBuffer s = new StringBuffer();
        s.append("key=").append("xx").append("&locations=").append(lat).append(",").append(lon).append("&coordsys=gps");
        String res = HttpRequest.sendPost("https://restapi.amap.com/v3/assistant/coordinate/convert", s.toString());
        
        Map<String, Object> result = new HashMap<String, Object>();
        result.put(RESULT, RESULT_SUCCESS);
        result.put(CONTENT, res);
        return result;
    }
    
}

 

posted @ 2018-12-05 16:53  19xin  阅读(1634)  评论(0)    收藏  举报