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 ab544b13de..1f98b35dab 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 @@ -18,6 +18,7 @@ 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 import kotlinx.coroutines.* @@ -48,6 +49,11 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { private val triggerLocation = AtomicReference() private val travelled by lazy { AtomicReference(0.0) } + override fun onRoadChange(cross: Boolean, roadCross: RoadCross?) { + super.onRoadChange(cross, roadCross) + inCrossRoad = cross + } + override fun onRoadIdInfo(roadId: String) { this.roadId.set(roadId) Log.d(TAG, "-- onRoadIdInfo --: prev: ${this.triggerRoadId.get()} -> curr: $roadId") @@ -64,21 +70,13 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider { val oldRoadId = triggerRoadId.get() Log.d(TAG, "-- onRoadIdInfo --: travelled --: ${travelled.get()}") if ((travelled.get() > distance)) { - val cross = MapDataWrapper.getCrossRoad(loc.longitude, loc.latitude, loc.heading) - Log.d(TAG, "-- onRoadIdInfo --: cross --: ${cross?.status}") - if (cross?.status == 1) { - if (!inCrossRoad) { - inCrossRoad = true - } - } else { - if (inCrossRoad) { - triggerClose = true - } - if (!triggerClose && roadId != "0" && oldRoadId != null && oldRoadId != roadId) { - triggerClose = true - } + Log.d(TAG, "-- onRoadIdInfo --: cross --: $inCrossRoad") + if (inCrossRoad) { + triggerClose = true + } + if (!triggerClose && roadId != "0" && oldRoadId != null && oldRoadId != roadId) { + triggerClose = true } - if (triggerClose) { Log.d(TAG, "-- onRoadIdInfo --: trigger close --") distanceOfCarToStopLine.set(0.0) diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt index 050ba85937..67573155e9 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt @@ -242,8 +242,10 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle * @param laneId */ override fun onRoadIdInfo(roadId: String?, laneId: String?) { - if (roadId != null && !TextUtils.isEmpty(roadId)) { - invokeListenersOnRoadIdGet(roadId) + handler.post { + if (roadId != null && !TextUtils.isEmpty(roadId)) { + invokeListenersOnRoadIdGet(roadId) + } } }