From 70f50f9f00a70397a336a75787ea4255f3b9ccf6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期六, 28 三月 2026 22:10:02 +0800
Subject: [PATCH] 修改bug
---
xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/utils/MapMatchingUtil.java | 11 +++++++----
1 files changed, 7 insertions(+), 4 deletions(-)
diff --git a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/utils/MapMatchingUtil.java b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/utils/MapMatchingUtil.java
index 97c4693..422ed98 100644
--- a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/utils/MapMatchingUtil.java
+++ b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/utils/MapMatchingUtil.java
@@ -63,6 +63,9 @@
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());
@@ -84,10 +87,10 @@
//判断当前位置是否处于两个点位之间
if((distance1 + distance2) == distance3 || (distance1 + distance2) <= distance3 + 5){
- //剩余未服务的点位
- List<LonLatDto> lonLatDtos = polyline.subList(i + 1, polyline.size());
- //已经服务的点位,给到前端处理
- 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;
--
Gitblit v1.7.1