[VisualAngle]升级地图sdk:修正crash;添加坐标转换;优化视角切换逻辑

This commit is contained in:
renwj
2022-03-23 11:42:28 +08:00
parent 22adb762c3
commit f37d8c996c
5 changed files with 58 additions and 41 deletions

View File

@@ -1,14 +1,20 @@
package com.mogo.eagle.core.function.call.map
import android.content.Context
import android.os.Handler
import android.os.Looper
import android.os.SystemClock
import androidx.lifecycle.Lifecycle.Event
import androidx.lifecycle.Lifecycle.Event.ON_DESTROY
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
import com.mogo.eagle.core.data.map.MapRoadInfo.StopLine
import com.mogo.eagle.core.data.map.MogoLatLng
import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager.OnRoadListener
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.CrossRoad
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.Default
import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager.Scene.LowSpeed
import com.mogo.eagle.core.utilcode.kotlin.lifeCycleOwner
import com.mogo.eagle.core.utilcode.kotlin.safeCancel
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_DEVA
@@ -55,29 +61,36 @@ object CallerVisualAngleManager {
val priority: Int
}
init {
CallerMapRoadListenerManager.registerRoadListener("VisualAngleChange", object : OnRoadListener {
private var roadId = ""
override fun onRoadIdInfo(roadId: String) {
val oldRoadId = this.roadId
if (oldRoadId != roadId) {
if (hasCrossRoad) {
hasCrossRoad = false
changeVisualAngle(Default())
}
private val listener = object : OnRoadListener {
private var roadId = ""
override fun onRoadIdInfo(roadId: String) {
val oldRoadId = this.roadId
if (oldRoadId != roadId) {
if (hasCrossRoad) {
hasCrossRoad = false
changeVisualAngle(Default())
}
this.roadId = roadId
}
this.roadId = roadId
}
override fun onStopLineInfo(info: StopLine) {
if (!hasCrossRoad && info.distanceOfCarToStopLine <= 30.0) {
hasCrossRoad = true
changeVisualAngle(CrossRoad)
override fun onStopLineInfo(info: StopLine) {
if (!hasCrossRoad && info.distanceOfCarToStopLine <= 30.0) {
hasCrossRoad = true
changeVisualAngle(CrossRoad)
}
}
}
fun init(ctx: Context) {
ctx.lifeCycleOwner.lifecycle.addObserver(object : LifecycleEventObserver {
override fun onStateChanged(source: LifecycleOwner, event: Event) {
if (event == ON_DESTROY) {
CallerMapRoadListenerManager.unRegisterRoadListener("VisualAngleChange")
}
}
})
CallerMapRoadListenerManager.registerRoadListener("VisualAngleChange", listener)
}
sealed class Scene private constructor(): IAttach {