package com.xzx.gc.common.utils.gdmap; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.xzx.gc.common.Result; import com.xzx.gc.common.constant.Constants; import com.xzx.gc.common.dto.gdmap.*; import lombok.experimental.UtilityClass; import lombok.extern.slf4j.Slf4j; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 高德轨迹 * https://lbs.amap.com/api/track/lieying-kaifa/api/service * https://lbs.amap.com/api/android-track/guide/guijishangbao/start-guijishangbao * * * 猎鹰sdk(安卓)默认的定位信息采集周期是2s,默认的上报周期是20s,也就是最快2s记录一次当前位置信息(若位置没有变化,这次位置信息会被忽略),20s上报一次记录下的这些信息。 * * 注意定位信息采集周期的范围应该是1s~60s,上报周期的范围是采集周期的5~50倍。 在安卓这边处理 * * * 高德测试KEY: d985739d075432bcbb3c0e8115c22bf1 * ab5180b0423f279143d006177f330b7a * 921f67e45fe9afe7d2730658e147ca2a * * * 特别注意:同一账号下的 Key ,可以无差别访问和处理同账号下所有 Service */ @UtilityClass @Slf4j public class GdTraceUtil { /** * 创建服务 115777 * 可以通过此请求,在对应的 Key 下增加 1 个 Service,Service 增加成功后会返回 Service 的 id。每个 Key 下最多注册15个 Service。 * @param serviceName 名字在同一个 Key 下不可重复,不可为空。 * @return 服务唯一id 115777 */ public Result createService(String key, String serviceName){ String url= "https://tsapi.amap.com/v1/track/service/add"; Map map = MapUtil.newHashMap(); map.put("key",key); map.put("name",serviceName); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ //成功 JSONObject data = jsonObject.getJSONObject("data"); //服务的唯一ID String sid = data.getStr("sid"); log.debug("创建服务成功,key:{},serviceName:{},id:{}",key,serviceName,sid); return Result.success(sid); }else { return err(jsonObject,"创建服务"); } } /** * 根据终端名称查询终端 * @param key * @param sid * @param tid 终端ID * @param terminalName * @return */ public Result findTerminal(String key, String sid,String tid,String terminalName){ String url="https://tsapi.amap.com/v1/track/terminal/list"; Map map = MapUtil.newHashMap(); map.put("key",key); map.put("sid",sid); //若同时指定了tid和name则以tid为准 if(StrUtil.isNotBlank(tid)){ map.put("tid",tid); }else { map.put("name",terminalName); } String s = HttpUtil.get(url, map); JSONObject jsonObject = JSONUtil.parseObj(s); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ //成功 JSONObject data = jsonObject.getJSONObject("data"); if(data!=null&&data.size()>0) { Integer count = data.getInt("count"); if (count > 0) { JSONArray results = data.getJSONArray("results"); JSONObject jsonObject1 = (JSONObject) results.get(0); String tid2 = jsonObject1.getStr("tid"); log.debug("终端查询成功:{}",tid2); return Result.success(tid2); } else { return Result.error(-2, "未搜索到终端"); } }else { return Result.error(-2, "未搜索到终端"); } }else { return err(jsonObject,"查询终端"); } } /** * 创建终端可以在指定 Service 下创建1个终端,默认最大支持创建100000个。 * @param key * @param sid * @param terminalName * @return */ public Result createTerminal(String key, String sid,String terminalName){ String url= "https://tsapi.amap.com/v1/track/terminal/add"; Map map = MapUtil.newHashMap(); map.put("key",key); map.put("sid",sid); //同一个service下不可出现名字相同的终端 //命名规则:仅支持中文、英文大小字母、英文下划线"_"、英文横线"-"和数字 // //最长不得超过128字符, 不能以"_"开头 // //需要说明,此字段将作为日后可视化管理的显示字段,不可修改 map.put("name",terminalName); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ //成功 JSONObject data = jsonObject.getJSONObject("data"); //服务的唯一ID String tid = data.getStr("tid"); log.debug("创建终端成功:{}",tid); return Result.success(tid); }else { return err(jsonObject,"创建终端"); } } /** * 删除终端 * @param key * @param sid * @param tid * @return */ public Result deleteTerminal(String key, String sid,String tid){ String url= "https://tsapi.amap.com/v1/track/terminal/delete"; Map map = MapUtil.newHashMap(); map.put("key",key); map.put("sid",sid); map.put("tid",tid); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ return Result.success(null); }else { return err(jsonObject,"删除终端"); } } /** * 创建轨迹 * @param key 高德KEY * @param sid 服务id * @param tid 终端id * @return */ public Result createTrace(String key, String sid,String tid){ String url= "https://tsapi.amap.com/v1/track/trace/add"; Map map = MapUtil.newHashMap(); map.put("key",key); map.put("sid",sid); map.put("tid",tid); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ //成功 JSONObject data = jsonObject.getJSONObject("data"); //轨迹的唯一编号 String trid = data.getStr("trid"); log.debug("创建轨迹成功,ID:{}",trid); return Result.success(trid); }else { return err(jsonObject,"创建轨迹"); } } private Result err(JSONObject jsonObject,String msg,String param){ String errmsg = jsonObject.getStr("errmsg"); String errdetail = jsonObject.getStr("errdetail"); log.error(msg+"失败,错误码:{},描述:{},入参:{}",errmsg,errdetail,param); return Result.error(-1,errdetail); } private Result err(JSONObject jsonObject,String msg){ String errmsg = jsonObject.getStr("errmsg"); String errdetail = jsonObject.getStr("errdetail"); if(!"删除终端".equals(msg)) { log.error(msg + "失败,错误码:{},描述:{}", errmsg, errdetail); } return Result.error(-1,errdetail); } /** * 上传轨迹 1次上传请求为一次调用,目前并未计算上传点数到调用次数中;单次上传最多100个点; * 企业开发者 日调用量 300000次 * @return */ public Result uploadTrace(UploadTraceDto uploadTraceDto){ String url= "https://tsapi.amap.com/v1/track/point/upload"; Map map = BeanUtil.beanToMap(uploadTraceDto); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ log.debug("上传轨迹成功:{}",uploadTraceDto.getTrid()); return Result.success(null); }else { return err(jsonObject,"上传轨迹",JSONUtil.toJsonPrettyStr(uploadTraceDto)); } } /** * 创建轨迹自定义字段 所有属于当前 service 的终端轨迹都可以使用此自定义字段。 最多创建5个轨迹自定义字段。 * @param key 高德KEY * @param sid 服务id * @param column 用户针对轨迹的自定义字段的名字 同一个service下不能出现名称一样的自定义字段。 * 需要按照定义的类型上传数据,例如定义为int,则仅上传数字 * @param type 此自定义字段的类别 string、double.int * @return */ public Result createTraceProp(String key, String sid,String column,String type){ String url= "https://tsapi.amap.com/v1/track/point/column/add"; Map map = MapUtil.newHashMap(); map.put("key",key); map.put("sid",sid); map.put("column",column); map.put("type",type); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ log.debug("创建轨迹自定义字段成功:{}",column); return Result.success(""); }else { return err(jsonObject,"创建轨迹自定义字段"); } } /** * 能够查询某个终端的某条轨迹,轨迹信息包括经纬度点,里程,时间等信息,支持如下两种查询方式: * * 查询指定轨迹:指定服务id、终端id、轨迹id,查询指定的轨迹信息,目前最多支持查询1条轨迹; * * 分段查询轨迹信息:在第一种查询方式的基础上,通过设置查询的时间间隔(通过starttime和endtime限定时间间隔), * 分段查询轨迹数据,在分段查询中,trid、starttime、endtime均为必填信息。 * @param findTraceDto * @return */ public Result> findTrace(FindTraceDto findTraceDto){ String url="https://tsapi.amap.com/v1/track/terminal/trsearch"; Map map = BeanUtil.beanToMap(findTraceDto,false,true); String s = HttpUtil.get(url, map); JSONObject jsonObject = JSONUtil.parseObj(s); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ //成功 JSONObject data = jsonObject.getJSONObject("data"); if(data!=null&&data.size()>0) { Integer count = data.getInt("counts"); if (count > 0) { JSONArray results = data.getJSONArray("tracks"); List trackDtos = JSONUtil.toList(results, TrackDto.class); return Result.success(trackDtos); } else { return Result.error(-2, "未搜索到轨迹信息:"+findTraceDto.getTrid()); } }else { return Result.error(-2, "未搜索到轨迹信息:"+findTraceDto.getTrid()); } }else { String errmsg = jsonObject.getStr("errmsg"); String errdetail = jsonObject.getStr("errdetail"); log.error("查询轨迹失败,ID:{},错误码:{},描述:{}",findTraceDto.getTrid(),errmsg,errdetail); return Result.error(-1,errdetail); } } /** * 特意兼容后端使用 * @param findTraceDto * @return */ public Result findTraceForAdmin(FindTraceDto findTraceDto){ String url="https://tsapi.amap.com/v1/track/terminal/trsearch"; Map map = BeanUtil.beanToMap(findTraceDto,false,true); String s = HttpUtil.get(url, map); JSONObject jsonObject = JSONUtil.parseObj(s); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ //成功 JSONObject data = jsonObject.getJSONObject("data"); if(data!=null&&data.size()>0) { Integer count = data.getInt("counts"); if (count > 0) { JSONArray results = data.getJSONArray("tracks"); return Result.success(results); } else { return Result.error(-2, "未搜索到轨迹信息:"+findTraceDto.getTrid()); } }else { return Result.error(-2, "未搜索到轨迹信息:"+findTraceDto.getTrid()); } }else { String errmsg = jsonObject.getStr("errmsg"); String errdetail = jsonObject.getStr("errdetail"); log.error("查询轨迹失败,ID:{},错误码:{},描述:{}",findTraceDto.getTrid(),errmsg,errdetail); return Result.error(-1,errdetail); } } /** * 删除某条轨迹 * @param commonTraceDto * @return */ public Result deleteTrace(CommonTraceDto commonTraceDto){ String url= "https://tsapi.amap.com/v1/track/trace/delete"; Map map = BeanUtil.beanToMap(commonTraceDto,false,true); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ log.debug("删除轨迹成功:{}",commonTraceDto.getTrid()); return Result.success(""); }else { String errmsg = jsonObject.getStr("errmsg"); String errdetail = jsonObject.getStr("errdetail"); log.error("删除轨迹失败,ID:{},错误码:{},描述:{}",commonTraceDto.getTrid(),errmsg,errdetail); return Result.error(-1,errdetail); } } /** * 查找服务 同一账号下的 Key ,可以无差别访问和处理同账号下所有 Service 。 * @param key * @return */ public Result findService(String key){ String url= "https://tsapi.amap.com/v1/track/service/list"; Map map =new HashMap<>(); map.put("key",key); String post = HttpUtil.get(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ JSONObject data = jsonObject.getJSONObject("data"); JSONArray results = data.getJSONArray("results"); if(results!=null&&results.size()>0){ for (Object result : results) { JSONObject jsonObject1= (JSONObject) result; String sid = jsonObject1.getStr("sid"); String name = jsonObject1.getStr("name"); log.debug("查询服务成功,id:{},名字:{}",sid,name); } return Result.success(results); } return Result.error("未查询到任何服务:"+key); }else { return err(jsonObject,"查询服务"); } } /** * 删除服务 * @param key * @param sid * @return */ public Result deleteService(String key,String sid){ String url= "https://tsapi.amap.com/v1/track/service/delete"; Map map =new HashMap<>(); map.put("key",key); map.put("sid",sid); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ log.debug("删除服务成功,id:{}",sid); return Result.success(""); }else { return err(jsonObject,"删除服务"); } } /** * 修改服务 * @param key * @param sid * @param name * @return */ public Result updateService(String key,String sid,String name){ String url= "https://tsapi.amap.com/v1/track/service/update"; Map map =new HashMap<>(); map.put("key",key); map.put("sid",sid); map.put("name",name); String post = HttpUtil.post(url, map); JSONObject jsonObject = JSONUtil.parseObj(post); Integer errcode = jsonObject.getInt("errcode"); if(10000==errcode){ log.debug("修改服务成功,id:{}",sid); return Result.success(""); }else { return err(jsonObject,"修改服务"); } } public static void main(String[] args) { /** * 每个账号最多可以创建30个应用,每个账号可以创建100个key。 * * 注意:“Web服务”和“智能硬件定位”key二者数量之和不能超过10个。 */ String key="b591ccdeaab2372d14dde1b0f1eed361"; String sid="123158"; String tid="244866590"; String traceId="260"; // createTrace(key, sid, tid); //20 40 // deleteService(key,"122077"); // findService(key); // findTerminal(key,sid,"22"); //b591ccdeaab2372d14dde1b0f1eed361 测试key // createService("b591ccdeaab2372d14dde1b0f1eed361","钟赞推广员轨迹"); // createService(key,"钟赞回收员轨迹"); // Result terminal1 = createTerminal("b591ccdeaab2372d14dde1b0f1eed361", "123138", "YH1184372951408312322"); // Result terminal = findTerminal(Constants.GD_MAP_KEY, "115777", "22"); //tid: 242154899 // createTraceProp(key, sid,"address","string"); //trid:60 // createTrace(key,sid,tid); UploadTraceDto uploadTraceDto=new UploadTraceDto(); uploadTraceDto.setKey(Constants.GD_MAP_KEY); uploadTraceDto.setSid("115777"); uploadTraceDto.setTid("242154899"); uploadTraceDto.setTrid("100"); JSONArray jsonArray=new JSONArray(); List list=new ArrayList<>(); UploadTraceLocationDto uploadTraceLocationDto=new UploadTraceLocationDto(); uploadTraceLocationDto.setLocation("112.897555,28.131769"); uploadTraceLocationDto.setLocatetime(System.currentTimeMillis()); JSONObject jsonObject=new JSONObject(); jsonObject.put("address","象嘴路"); uploadTraceLocationDto.setProps(JSONUtil.toJsonStr(jsonObject)); jsonArray.add(JSONUtil.parseObj(uploadTraceLocationDto)); uploadTraceLocationDto=new UploadTraceLocationDto(); uploadTraceLocationDto.setLocation("112.91205,28.138689"); jsonObject=new JSONObject(); jsonObject.put("address","湖南工业职业技术学院"); uploadTraceLocationDto.setLocatetime(System.currentTimeMillis()+100000); uploadTraceLocationDto.setProps(JSONUtil.toJsonStr(jsonObject)); jsonArray.add(JSONUtil.parseObj(uploadTraceLocationDto)); uploadTraceDto.setPoints(JSONUtil.toJsonStr(jsonArray)); String json="{\n" + " \"key\": \"b591ccdeaab2372d14dde1b0f1eed361\",\n" + " \"tid\": \"244866590\",\n" + " \"points\": \"[{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608893367,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608898373,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608903378,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608908384,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608913399,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608918395,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608923403,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608928406,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608933426,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608938417,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608943424,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608948427,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608953428,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608958434,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608963462,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608968450,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608973453,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608978458,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608983465,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608988466,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608993533,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587608998477,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609003484,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609008484,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609013492,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609018498,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609023503,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609028506,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609033517,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609038518,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609043526,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609048532,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609053539,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609058543,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609063554,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609068559,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609073564,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609078570,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609083579,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609088583,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609093592,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609098599,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609103668,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609108611,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609113620,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609118636,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609123631,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609128640,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609133641,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609138648,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609143657,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609148662,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609153669,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609158673,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609163685,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609168686,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609173692,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609178687,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609183697,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609188701,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609193708,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609198712,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609203723,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609208727,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609213745,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609218746,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609223751,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609228760,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609233769,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609238771,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609243778,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609248787,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609253794,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609258794,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609263810,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609268809,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609273817,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609278819,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609283824,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609288834,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609293839,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609298846,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609303851,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609308858,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609313863,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609318875,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609323875,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609328884,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609333891,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609338896,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609343905,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609348906,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609353918,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609358925,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609363934,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609368933,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609373942,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"}{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609353918,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"}{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587609353918,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"},{\\\"location\\\":\\\"113.004680,28.118123\\\",\\\"locatetime\\\":1587611580651,\\\"props\\\":\\\"{\\\\\\\"address\\\\\\\":\\\\\\\"湖南省长沙市雨花区正塘坡路85号靠近中建信和城\\\\\\\"}\\\"}]\",\n" + " \"sid\": \"123158\",\n" + " \"trid\": \"260\"\n" + "}"; UploadTraceDto uploadTraceDto2 = JSONUtil.toBean(json, UploadTraceDto.class); uploadTrace(uploadTraceDto2); FindTraceDto findTraceDto=new FindTraceDto(); findTraceDto.setKey(key); findTraceDto.setSid(sid); findTraceDto.setTid(tid); findTraceDto.setTrid(traceId); // String startTime = traceInfoDto.getTime() + " " + split[0] + ":00"; // String endTime = traceInfoDto.getTime() + " " + split[1] + ":00"; // // findTraceDto.setStarttime(DateUtil.parse(startTime, DateUtils.DATE_FORMAT_YMDHMS).getTime()); // findTraceDto.setEndtime(DateUtil.parse(endTime, DateUtils.DATE_FORMAT_YMDHMS).getTime()); // findTrace(findTraceDto); // CommonTraceDto findTraceDto=new CommonTraceDto(); // findTraceDto.setKey(Constants.GD_MAP_KEY); // findTraceDto.setSid("115777"); // findTraceDto.setTid("242154899"); // findTraceDto.setTrid("60"); // // deleteTrace(findTraceDto); // deleteTerminal(Constants.GD_MAP_KEY, "115777", "242154899"); // deleteService(Constants.GD_MAP_KEY,"116478"); // updateService(Constants.GD_MAP_KEY,"115777","回收员轨迹"); // findService(Constants.GD_MAP_KEY); } }