坐标偏移一个servlet实现GPS坐标偏移接口功能

改章节是一篇关于坐标偏移的帖子

    

    这两天写了一个servlet,用于实现GPS坐标偏移接口功能。大概就是,我须要首先接收一个经纬度串数组,然后用json剖析,给URL服务发送请求,服务器返回json格式的数组.

    1 须要引入json-simple-1.1的类库。

    2 web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
 xmlns="http://java.sun.com/xml/ns/javaee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  
 
    <welcome-file-list>
         <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
 
  
  <servlet>
    <servlet-name>GPSConventCoordinateServlet</servlet-name>
    <servlet-class>com.tm.gpsController.GPSConventCoordinateServlet</servlet-class>
  </servlet>

 
  <servlet-mapping>
    <servlet-name>GPSConventCoordinateServlet</servlet-name>
    <url-pattern>/GPSConventCoordinateServlet</url-pattern>
  </servlet-mapping>
  
  
</web-app>

    3 参照GPS坐标偏移接口文档,具体servlet代码如下:

    每日一道理
宽容,是一种坦荡,可以无私无畏,无拘无束,无尘无染。宽容,是一种豁达,是比海洋和天空更为博大的胸襟,是宽广和宽厚的叠加,延续和升华。宽容有度,宽容无价,宽以待人,这是人生处世的基本法则。
package com.tm.gpsController;

import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;

public class GPSConventCoordinateServlet extends HttpServlet {

 private static final long serialVersionUID = 3018725984829044717L;

 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {

  // 我申请的key
  String a_k = "XXXXXX";

  String coors = req.getParameter("lonLatStr");

  JSONParser parser = new JSONParser();
  Object obj = "";
  try {
   obj = parser.parse(coors);
  } catch (ParseException e) {
   e.printStackTrace();
  }
  String lonLatStr = "";
  JSONArray array = (JSONArray) obj;
  for (Object j : array) {
   //
   lonLatStr = lonLatStr + ((JSONObject) j).get("lon") + ","
     + ((JSONObject) j).get("lat") + ";";
  }

  lonLatStr = lonLatStr.substring(0, lonLatStr.length() - 1);
  String postParam = "config=RGC&flag=true&resType=json&cr=0&coors="
    + lonLatStr + "&a_k=" + a_k;
  System.out.println(postParam);
  // 服务地址
  String urlString = "XXXXXX";

  URL url = new URL(urlString);
  URLConnection urlc = url.openConnection();

  HttpURLConnection httpConnection = (HttpURLConnection) urlc;
  httpConnection.setRequestMethod("POST");
  httpConnection.setDoInput(true);
  httpConnection.setDoOutput(true);

  httpConnection.connect();

  OutputStreamWriter osw = new OutputStreamWriter(
    new BufferedOutputStream(httpConnection.getOutputStream()));
  osw.write(postParam);
  osw.flush();
  System.out.println();
  osw.close();
  BufferedReader br = new BufferedReader(new InputStreamReader(
    httpConnection.getInputStream()));
  String line;
  StringBuffer sbuffB = new StringBuffer();
  while ((line = br.readLine()) != null) {

   sbuffB.append(line + "\n");
   System.out.println(line);
  }
  br.close();
  httpConnection.disconnect();

 }

 @Override
 protected void doPost(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  doGet(req, resp);
 }

}

    4    启动tomcat,部署一下,运行。

    5    在浏览器中输入

    http://localhost:8080/gpsCoordinateConvent/GPSConventCoordinateServlet?lonLatStr=[{"lon":133.34,"lat":35.33},{"lon":134.33,"lat":34.33]停止测试。

    6    在控制台输出返回的信息{"message":"ok","list":[{"gridcode":"873482645301","y":"582.5422219509549","x":"582.5422219509549"},{"gridcode":"873482645301","y":"582.5422219509549","x":"582.5422219509549"}]} 就对了。

     

    注意 在浏览器中输入的参数lonLatStr=[{"lon":133.34,"lat":35.33},{"lon":134.33,"lat":34.33] 参数格式有时候输入的特殊,服务器端就会返回一个默许的返回的结果。"[{"gridcode":"873482645301","y":"582.5422219509549","x":"582.5422219509549"},这时候,其实程序是没有问题的,只须要改一下参数,就可以了。

     

文章结束给大家分享下程序员的一些笑话语录: 看新闻说中国输入法全球第一!领先了又如何?西方文字根本不需要输入法。一点可比性都没有。

--------------------------------- 原创文章 By
坐标和偏移
---------------------------------

原文地址:https://www.cnblogs.com/jiangu66/p/3113024.html