地图服务创建轨迹代码实现

main
topsun 2 years ago
parent c76981e2e2
commit 08c2365411

@ -24,4 +24,8 @@ public class AmapConfigConstant {
*
*/
public static final String TERMINAL_MAP_ADD_URL = "https://tsapi.amap.com/v1/track/terminal/add";
/**
*
*/
public static final String TRACK_MAP_ADD_URL = "https://tsapi.amap.com/v1/track/trace/add";
}

@ -0,0 +1,18 @@
package com.internal.dto;
import lombok.Data;
/**
* {
* "code": 1,
* "message": "success",
* "data": {
* "trid": "20",
* "trname": null
* }
* }
*/
@Data
public class TrackResponse {
private String trid;
private String trname;
}

@ -23,11 +23,15 @@ public class CarService {
car.setGmtCreate(localDateTime);
car.setGmtModified(localDateTime);
//获取此车辆对应的tid
//获取此车辆终端的tid
ResponseResult<TerminalResponse> responseResult = serviceMapClient.addTerminal(car.getVehicleNo());
String tid = responseResult.getData().getTid();
car.setTid(tid);
//获得此车辆的轨迹id,trid
carMapper.insert(car);

@ -0,0 +1,21 @@
package com.taxi.servicemap.controller;
import com.internal.dto.ResponseResult;
import com.taxi.servicemap.service.TrackService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/track")
public class TrackController {
@Autowired
private TrackService trackService;
@PostMapping("/addTrack")
public ResponseResult addTrack(String tid){
return trackService.addTrack(tid);
}
}

@ -0,0 +1,66 @@
package com.taxi.servicemap.remote;
import com.internal.contant.AmapConfigConstant;
import com.internal.dto.ResponseResult;
import com.internal.dto.TrackResponse;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
@Service
public class TrackClient {
@Value("${amap.key}")
private String amapKey;
@Value("${amap.sid}")
private String sid;
@Autowired
private RestTemplate restTemplate;
public ResponseResult addTrack(String tid){
//拼接请求的URL
StringBuilder url = new StringBuilder();
url.append(AmapConfigConstant.TRACK_MAP_ADD_URL);
url.append("?");
url.append("key="+amapKey);
url.append("&");
url.append("sid="+sid);
url.append("&");
url.append("tid="+tid);
/**
* {
* "data": {
* "trname": "测试轨迹",
* "trid": 80
* },
* "errcode": 10000,
* "errdetail": null,
* "errmsg": "OK"
* }
*/
ResponseEntity<String> forEntity =
restTemplate.postForEntity(url.toString(),null,String.class);
String bodyStr = forEntity.getBody();
TrackResponse terminalResponse = new TrackResponse();
JSONObject result = JSONObject.fromObject(bodyStr);
if(result.has("data")){
JSONObject data = result.getJSONObject("data");
if(!data.isNullObject() && data.has("trid")){
String trid = data.getString("trid");
terminalResponse.setTrid(trid);
}
if(!data.isNullObject() && data.has("trname")){
String trname = data.getString("trname");
terminalResponse.setTrname(trname);
}
}
return ResponseResult.success(terminalResponse);
}
}

@ -0,0 +1,16 @@
package com.taxi.servicemap.service;
import com.internal.dto.ResponseResult;
import com.taxi.servicemap.remote.TrackClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class TrackService {
@Autowired
private TrackClient trackClient;
public ResponseResult addTrack(String tid){
return trackClient.addTrack(tid);
}
}
Loading…
Cancel
Save