[6.5.0][道路事件][视角切换] 避免主动获取路口数据,导致应用卡顿

This commit is contained in:
renwj
2024-07-17 12:16:38 +08:00
parent 0d2f1797cf
commit 1177b7c018
2 changed files with 16 additions and 16 deletions

View File

@@ -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<MogoLocation>()
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)

View File

@@ -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)
}
}
}