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不可用