| | |
| | | * 给乘客端推送剩余轨迹和剩余里程时长 |
| | | * @return |
| | | */ |
| | | @PostMapping("/inner/v1/order/pushOrderRoute") |
| | | @PostMapping("/logan/inner/v1/order/pushOrderRoute") |
| | | public R<String> pushOrderRoute(@Validated @RequestBody PushOrderRouteDTO dto) { |
| | | Integer routeType = dto.getRouteType(); |
| | | //正常订单 |
| | |
| | | // 存储最新路线偏离缓存,后续进行轨迹截取 |
| | | redisService.setCacheObject(key, JSON.toJSONString(routeVo), 24L, TimeUnit.HOURS); |
| | | |
| | | //将车辆的当前位置加入到第一个轨迹点位集合中 |
| | | lonLatDtos.add(0, new LonLatDto(dto.getLongitude(), dto.getLatitude())); |
| | | // 封装轨迹点位集合 |
| | | List<Map<String, Object>> polyline = new ArrayList<>(); |
| | | for (LonLatDto lonLatDto : lonLatDtos) { |
| | |
| | | return map; |
| | | } |
| | | //大于5米的情况,将车子当前位置添加进结果中 |
| | | lonLatDto = new LonLatDto(longitude, latitude); |
| | | polyline.add(0, lonLatDto); |
| | | map.put("unserved", polyline); |
| | | map.put("served", Collections.emptyList()); |
| | | return map; |
| | |
| | | if((distance1 + distance2) == distance3 || (distance1 + distance2) <= distance3 + 5){ |
| | | //剩余未服务的点位 |
| | | List<LonLatDto> lonLatDtos = polyline.subList(i + 1, polyline.size()); |
| | | lonLatDtos.add(0, new LonLatDto(longitude, latitude)); |
| | | //已经服务的点位,给到前端处理 |
| | | List<LonLatDto> lonLatDtos1 = polyline.subList(0, i + 1); |
| | | map.put("unserved", lonLatDtos); |
| | |
| | | return map; |
| | | } |
| | | } |
| | | polyline.add(0, new LonLatDto(longitude, latitude)); |
| | | map.put("unserved", polyline); |
| | | map.put("served", Collections.emptyList()); |
| | | return map; |