From 955c9066fb99669df5ab5050c4125bbb892ce0ce Mon Sep 17 00:00:00 2001
From: hejianhao <15708179461@qq.com>
Date: 星期五, 17 四月 2026 22:57:38 +0800
Subject: [PATCH] fix: 修复行程状态切换时定时器与地图视角的竞争条件
---
src/robotaxi/pages/begin-route/hooks/use-map-markers.ts | 20 +-------------------
1 files changed, 1 insertions(+), 19 deletions(-)
diff --git a/src/robotaxi/pages/begin-route/hooks/use-map-markers.ts b/src/robotaxi/pages/begin-route/hooks/use-map-markers.ts
index 45d4c3e..ff7e315 100644
--- a/src/robotaxi/pages/begin-route/hooks/use-map-markers.ts
+++ b/src/robotaxi/pages/begin-route/hooks/use-map-markers.ts
@@ -159,26 +159,8 @@
].join('|'))
.join(';');
const hasDropoffMarker = markersRef.current.some((m: any) => m.id === 2);
- const hasCarMarker = markersRef.current.some((m: any) => m.id === deps.vehicleMarkerId);
- const currentCarMarker = markersRef.current.find((m: any) => m.id === deps.vehicleMarkerId);
- const currentRotate = Number(currentCarMarker?.rotate);
- const targetRotate = Number(deps.vehicleDirection);
- const angleDiff = (a: number, b: number) => {
- const diff = Math.abs(((a - b + 540) % 360) - 180);
- return diff;
- };
- const isArrivedAngleSynced = Number.isFinite(currentRotate)
- && Number.isFinite(targetRotate)
- && angleDiff(currentRotate, targetRotate) < 1;
const shouldHoldMarkerByTranslate = [4, 6].includes(deps.tripStatus) && carMarkerInitialized.current && deps.statusRule.showCar && (!deps.statusRule.showDropoff || hasDropoffMarker);
- const shouldHoldMarkerWhenArrived = deps.tripStatus === 7
- && deps.arrivedTooltipReady
- && carMarkerInitialized.current
- && effectiveShowCar
- && hasCarMarker
- && isArrivedAngleSynced
- && (!deps.statusRule.showDropoff || hasDropoffMarker);
- const shouldSkipUpdate = (shouldHoldMarkerByTranslate && (deps.isAndroid || tripStatus6MarkerRefreshedRef.current)) || shouldHoldMarkerWhenArrived;
+ const shouldSkipUpdate = shouldHoldMarkerByTranslate && (deps.isAndroid || tripStatus6MarkerRefreshedRef.current);
applyMarkerState(nextMarkers, nextMarkersSignature, shouldSkipUpdate, carMarker);
}, [deps.tripStatus, deps.startSite?.name, deps.startSite?.latitude, deps.startSite?.longitude, deps.endSite?.name, deps.endSite?.latitude, deps.endSite?.longitude, deps.vehicleLocation, deps.vehicleDirection, deps.vehicleMarkerId, deps.isAndroid, deps.statusRule.showPickup, deps.statusRule.showCar, deps.statusRule.showDropoff]);
--
Gitblit v1.7.1