| | |
| | | return map; |
| | | } |
| | | //大于5米的情况,将车子当前位置添加进结果中 |
| | | lonLatDto = new LonLatDto(longitude, latitude); |
| | | polyline.add(0, lonLatDto); |
| | | map.put("unserved", polyline); |
| | | map.put("served", Collections.emptyList()); |
| | | return map; |
| | |
| | | public static Map<String, List<LonLatDto>> getRecentlyPoint(List<LonLatDto> polyline, Double longitude, Double latitude){ |
| | | Map<String, List<LonLatDto>> map = new HashMap<>(); |
| | | for (int i = 0; i < polyline.size(); i++) { |
| | | if(i == polyline.size() - 1){ |
| | | break; |
| | | } |
| | | LonLatDto lonLatDto1 = polyline.get(i); |
| | | |
| | | GlobalCoordinates source1 = new GlobalCoordinates(lonLatDto1.getLatitude(), lonLatDto1.getLongitude()); |
| | |
| | | |
| | | //判断当前位置是否处于两个点位之间 |
| | | 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); |
| | | //剩余未服务的点位(创建新副本避免修改原列表) |
| | | List<LonLatDto> lonLatDtos = new ArrayList<>(polyline.subList(i + 1, polyline.size())); |
| | | //已经服务的点位,给到前端处理(创建新副本避免修改原列表) |
| | | List<LonLatDto> lonLatDtos1 = new ArrayList<>(polyline.subList(0, i + 1)); |
| | | map.put("unserved", lonLatDtos); |
| | | map.put("served", lonLatDtos1); |
| | | return map; |
| | | } |
| | | } |
| | | polyline.add(0, new LonLatDto(longitude, latitude)); |
| | | map.put("unserved", polyline); |
| | | map.put("served", Collections.emptyList()); |
| | | return map; |