diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index 1f98b35dab..d9f47f5f26 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -17,7 +17,6 @@ import com.mogo.eagle.core.function.api.map.road.IMoGoMapRoadListener import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.map.* import com.mogo.eagle.core.utilcode.kotlin.* -import com.mogo.map.MapDataWrapper import com.zhidaoauto.map.data.road.RoadCross import com.zhidaoauto.map.data.road.StopLine import com.zhidaoauto.map.sdk.open.common.tools.MapTools @@ -61,7 +60,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { var triggerClose = false var distance = distanceOfCarToStopLine.get() if (hasCrossRoad && distance > 0) { - distance += 3.0 + distance += 5.0 val prev = triggerLocation.get() if (prev != null) { travelled.set(MapTools.distance(loc.longitude, loc.latitude, prev.longitude, prev.latitude) + travelled.get()) @@ -70,22 +69,25 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { val oldRoadId = triggerRoadId.get() Log.d(TAG, "-- onRoadIdInfo --: travelled --: ${travelled.get()}") if ((travelled.get() > distance)) { - Log.d(TAG, "-- onRoadIdInfo --: cross --: $inCrossRoad") - if (inCrossRoad) { - triggerClose = true + val inCross = inCrossRoad + Log.d(TAG, "-- onRoadIdInfo --: cross --: $inCross") + if (inCross) { + return } - if (!triggerClose && roadId != "0" && oldRoadId != null && oldRoadId != roadId) { + if (roadId != "0" && oldRoadId != null && oldRoadId != roadId) { triggerClose = true } if (triggerClose) { - Log.d(TAG, "-- onRoadIdInfo --: trigger close --") - distanceOfCarToStopLine.set(0.0) - hasCrossRoad = false - triggerRoadId.set(null) - travelled.set(0.0) - triggerLocation.set(null) - inCrossRoad = false - changeScene(Default()) + try { + Log.d(TAG, "-- onRoadIdInfo --: trigger close --") + distanceOfCarToStopLine.set(0.0) + hasCrossRoad = false + triggerRoadId.set(null) + travelled.set(0.0) + triggerLocation.set(null) + } finally { + changeScene(Default()) + } } } }