From 0bd1cc7bc90a396466083346fc9cfa400fee86e8 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 16 Jul 2025 13:55:30 +0800 Subject: [PATCH] =?UTF-8?q?[8.1.2][fix]=E8=A7=A3=E5=86=B3=E8=B7=AF?= =?UTF-8?q?=E5=8F=A3=E5=9C=BA=E6=99=AF=E5=88=A4=E6=96=AD=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/view/DecisionLayout.kt | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/DecisionLayout.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/DecisionLayout.kt index 477907fe24..7fc28492d1 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/DecisionLayout.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/DecisionLayout.kt @@ -191,8 +191,11 @@ class DecisionLayout @JvmOverloads constructor( @Volatile private var lastUpdateTime = 0L + @Volatile + private var triggerRoadId = "" override fun onStopLineInfo(info: StopLine) { if (info.distance < 15 && !isInCrossRoad) {// 不在路口内且距离停止线小于15m + triggerRoadId = lastRoadId isCrossScene = true val time = System.currentTimeMillis() if (time - lastUpdateTime > 500) { @@ -215,11 +218,21 @@ class DecisionLayout @JvmOverloads constructor( } @Volatile - private var isInCrossRoad = false + private var lastRoadId = "" + override fun onRoadIdInfo(roadId: String) { + lastRoadId = roadId + if (roadId != "0" && triggerRoadId.isNotEmpty() && triggerRoadId != roadId) { + isCrossScene = false + triggerRoadId = "" + } + } + @Volatile + private var isInCrossRoad = false override fun onRoadChange(cross: Boolean, roadCross: RoadCross?) { if (isInCrossRoad && !cross) {// 上次在路口内,当前不在路口内,则代表出路口了 isCrossScene = false + triggerRoadId = "" val time = System.currentTimeMillis() if (time - lastUpdateTime > 500) { lastUpdateTime = time