From 9adef3dd7723930d44f72713c3cf28e50b002055 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 01 四月 2026 15:45:19 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi

---
 xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/utils/MapMatchingUtil.java |   15 +++++++--------
 1 files changed, 7 insertions(+), 8 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 7bddf2b..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
@@ -43,8 +43,6 @@
                 return map;
             }
             //大于5米的情况,将车子当前位置添加进结果中
-            lonLatDto = new LonLatDto(longitude, latitude);
-            polyline.add(0, lonLatDto);
             map.put("unserved", polyline);
             map.put("served", Collections.emptyList());
             return map;
@@ -65,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());
@@ -86,17 +87,15 @@
 
             //判断当前位置是否处于两个点位之间
             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;

--
Gitblit v1.7.1