[自主算路验证] refactor: 算路验证模式 高德导航距离,时间不准问题;

This commit is contained in:
aibingbing
2023-12-04 20:15:35 +08:00
parent f53b6ed553
commit 9b4b7e99b6
4 changed files with 22 additions and 7 deletions

View File

@@ -78,7 +78,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener {
public void setVoiceIsMute(boolean isPlay) {
ThreadUtils.getSinglePool().execute(() -> {
if (mAMapNavi == null) return;
CallerLogger.i(TAG, "setVoiceIsMute()--"+isPlay);
CallerLogger.i(TAG, "setVoiceIsMute()--" + isPlay);
this.isPlay = isPlay;
if (isPlay) {
mAMapNavi.startSpeak();
@@ -108,6 +108,7 @@ public class AmapNaviToDestinationModel implements AMapNaviListener {
}
public void setTaxiNaviChangedCallback(ICommonNaviChangedCallback callback) {
CallerLogger.i(TAG, "setTaxiNaviChangedCallback()");
this.mNaviChangedCallback = callback;
}

View File

@@ -10,6 +10,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis
import com.mogo.eagle.core.function.main.MainMoGoApplication
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
import com.mogo.och.common.module.map.ICommonNaviChangedCallback
@@ -97,7 +98,6 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback {
when (routingUiState) {
is RoutingUIState.Init -> {
showChooseTaskView()
AmapNaviToDestinationModel.getInstance(context).destroyAmaNavi()
}
is RoutingUIState.RoutingTask -> {
@@ -181,7 +181,6 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback {
startStationName.text = data.grayLineBean?.startSite?.siteName
endStationName.text = data.grayLineBean?.endSite?.siteName
}
private fun showFinishTaskView(routingTask: RoutingUIState.RoutingTask) {
@@ -315,7 +314,10 @@ class TaxiRoutingFragment : BaseFragment(), ICommonNaviChangedCallback {
val endNaviLatLng = NaviLatLng(stationLat, stationLng)
AmapNaviToDestinationModel.getInstance(context).initAMapNavi(startNaviLatLng, endNaviLatLng)
AmapNaviToDestinationModel.getInstance(context).setVoiceIsMute(isVoicePlay)
AmapNaviToDestinationModel.getInstance(context).setTaxiNaviChangedCallback(this)
// 怀疑在线程池执行的destroyAmaNavi会比 主线程执行的setTaxiNaviChangedCallback慢导致setTaxiNaviChangedCallback(this)会被冲掉
ThreadUtils.getSinglePool().execute {
AmapNaviToDestinationModel.getInstance(context).setTaxiNaviChangedCallback(this)
}
}
override fun onCurrentNaviDistAndTimeChanged(meters: Int, timeInSecond: Long) {

View File

@@ -7,6 +7,7 @@ import com.mogo.commons.module.status.MogoStatusManager
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.map.AmapNaviToDestinationModel
import com.mogo.och.taxi.base.BaseViewModel
import com.mogo.och.taxi.base.IUiIntent
import com.mogo.och.taxi.bean.GrayLineBean
@@ -149,6 +150,8 @@ class TaxiRoutingFragmentViewModel : BaseViewModel<TaxiRoutingUiState, TaxiRouti
// 移除到站监听
TaxiRoutingModel.removeAutoPilotStatusListener()
TaxiRoutingModel.removeGDMapCurrentLocationListener()
// 移除高德导航计算距离
AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi()
}
override fun onSubmitEndTaskFailed(errorStr: String) {

View File

@@ -452,7 +452,7 @@ object TaxiTaskModel {
)
)
// MAP返回route时关闭高德相关的
AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi()
destroyAmapNavi()
mOrderStatusCallback?.onNaviToEnd(false, false)
}
}
@@ -811,7 +811,7 @@ object TaxiTaskModel {
//订单到站结束轨迹剩余里程就算和高德计算, 防止到站查询订单全程的显示被覆盖
setStationPoint(null, null, -1L)
AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi()
destroyAmapNavi()
mTaxiTaskWithOrderCallbackMap.forEach {
val listener = it.value
@@ -882,7 +882,7 @@ object TaxiTaskModel {
fun clearLocalCalculateStation(){
d(TAG, "updateLocalCalculateStation stop")
if (mDriveToNearestStationTask == null){
AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi()
destroyAmapNavi()
}
setStationPoint(null, null, -1L)
}
@@ -1536,4 +1536,13 @@ object TaxiTaskModel {
}
}
}
private fun destroyAmapNavi() {
if (MogoStatusManager.getInstance().isTaxiUnmanedDriverLineRoutingVerifyMode) {
i(TAG, "destroyAmapNavi() 跳过因为isTaxiUnmanedDriverLineRoutingVerifyMode=true")
return
}
i(TAG, "destroyAmapNavi()")
AmapNaviToDestinationModel.getInstance(mContext).destroyAmaNavi()
}
}