diff --git a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt index e7c14f850d..cc3be2f1c4 100644 --- a/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt +++ b/OCH/common/bridge/src/main/java/com/mogo/och/bridge/BridgeProvider.kt @@ -5,6 +5,8 @@ import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_OCHCOMMON +import com.mogo.eagle.core.utilcode.util.CoordinateUtils +import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.bridge.distance.TrajectoryAndDistanceManager import com.mogo.och.common.module.biz.birdge.BridgeService import com.mogo.och.common.module.constant.OchCommonConst @@ -25,6 +27,17 @@ class BridgeProvider : BridgeService { TrajectoryAndDistanceManager.setStationPoint(startLocation,endLocation,lineId) } + override fun distance2Point(gcjLat: Double, gcjLon: Double): Float { + OchLocationManager.getGCJ02Location().let { + return CoordinateUtils.calculateLineDistance( + it.longitude, + it.latitude, + gcjLon, + gcjLat + ) + } + } + override fun init(context: Context?) { this.context = context diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt index a3c08046f6..d8ab753328 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeManager.kt @@ -23,4 +23,8 @@ object BridgeManager { bridgeService?.setDistanceStation(startLocation,endLocation,lineId) } + fun distance2Point(gcjLat: Double, gcjLon: Double):Float{ + return bridgeService?.distance2Point(gcjLat,gcjLon)?:0f + } + } \ No newline at end of file diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt index 0c5b86bdb4..e14e1916b9 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/biz/birdge/BridgeService.kt @@ -7,4 +7,7 @@ interface BridgeService : IProvider { fun setDistanceStation(startLocation: MogoLocation?, endLocation: MogoLocation?, lineId: Long?) + + fun distance2Point(gcjLat: Double, gcjLon: Double): Float + } \ No newline at end of file diff --git a/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml b/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml index 08c4f07159..55edd0baab 100644 --- a/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml +++ b/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml @@ -56,14 +56,17 @@ { return mTaskTrajectoryList } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentModel.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentModel.kt index 4189525244..30f504c17f 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentModel.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentModel.kt @@ -19,7 +19,6 @@ import com.mogo.och.data.taxi.TaxiOrderStatusEnum import com.mogo.och.bridge.autopilot.line.LineManager import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.common.module.biz.birdge.BridgeManager -import com.mogo.och.common.module.biz.login.EnumOpenOrderStatus import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.ToastUtilsOch @@ -539,9 +538,26 @@ class ItineraryCurrentModel : BaseViewModel(), TaxiTaskModel.mockArriveAtNearestStation() } + fun arriveVirtualOrderView() { + val endSite = TaxiTaskModel.getCurrentTaskWithOrder()?.endSite + if(endSite!=null){ + val distance = BridgeManager.distance2Point(endSite.gcjLat,endSite.gcjLon) + if(TaxiUnmannedConst.ARRIVE_AT_START_STATION_DISTANCE <= distance){ + viewCallback?.askArrivedEndStationView() + }else{ + arriveVirtaulOrderImm() + } + } + } + + fun arriveVirtaulOrderImm(){ + TaxiTaskModel.mockArriveAtEndStation() + } + interface SwtichLineViewCallback { fun onStartTaskFail() + fun askArrivedEndStationView() } } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt index 54fe8b531d..b04955fe6e 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/unmanned/taxi/ui/task/itinerarycurrent/ItineraryCurrentView.kt @@ -245,8 +245,14 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi viewModelSwitch?.switchSite() } actv_arriver_station.onClick { - // 标定单到站 - viewModel?.arriveCalibrationSite() + if (TaxiTaskModel.getCalibrationOrder()!=null) { + // 标定单到站 + viewModel?.arriveCalibrationSite() + }else{ + if(TaxiTaskModel.getCurrentTaskWithOrder()!=null&&TaxiTaskModel.getCurrentTaskWithOrder()?.order==null){ + viewModel?.arriveVirtualOrderView() + } + } } } @@ -745,6 +751,7 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi aciv_task_type_exercise.setImageResource(R.drawable.taxi_task_exercise) cancelTask.visibility = VISIBLE + actv_arriver_station.visibility = VISIBLE startStationName.text = startSite.siteName endStationName.text = endSite.siteName @@ -990,4 +997,25 @@ class ItineraryCurrentView: ConstraintLayout, ItineraryCurrentModel.SwtichLineVi commonSlideViewStartServer.reset() } + override fun askArrivedEndStationView() { + d(TAG,"closeOrderDialog") + val builder = CommonDialogStatus.Builder() + val closeOrderDialog = builder + .title(ResourcesUtils.getString(R.string.dialog_virtual_arrive_title)) + .tips(ResourcesUtils.getString(R.string.dialog_virtual_arrive_content)) + .confirmStr(ResourcesUtils.getString(R.string.dialog_order_close_confirm)) + .cancelStr(ResourcesUtils.getString(R.string.dialog_order_close_cancel)) + .build(context) + closeOrderDialog.setClickListener(object : CommonDialogStatus.ClickListener { + override fun confirm() { + viewModel?.arriveVirtaulOrderImm() + } + + override fun cancel() { + closeOrderDialog.dismiss() + } + }) + closeOrderDialog.show() + } + } diff --git a/OCH/taxi/unmanned-driver/src/main/res/values/strings.xml b/OCH/taxi/unmanned-driver/src/main/res/values/strings.xml index 151cd62635..a67fbfefd8 100644 --- a/OCH/taxi/unmanned-driver/src/main/res/values/strings.xml +++ b/OCH/taxi/unmanned-driver/src/main/res/values/strings.xml @@ -29,6 +29,8 @@ 确认 取消 + 是否手动到站? + 检测到当前位置距离站点较远,请确认是否手动触发到站? 自动驾驶状态为0不可用