From a9a6dcdc0657b37cccaeccdb3b3005ec7a5da8f8 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Tue, 19 Sep 2023 14:28:22 +0800 Subject: [PATCH] [3.4.0-map-sdk] fix unmanunal and sweep map invoke --- .../och/bus/passenger/ui/PM2HPMapFragment.kt | 23 ++-- .../sweepercloud/fragment/SweeperFragment.kt | 107 +++++++++++------- .../util/SweeperCloudTaskUtils.kt | 68 ++++++----- .../mogo/och/taxi/utils/MapMakerManager.kt | 24 ++-- 4 files changed, 123 insertions(+), 99 deletions(-) diff --git a/OCH/shuttle/passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2HPMapFragment.kt b/OCH/shuttle/passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2HPMapFragment.kt index 11934b3cd2..209869e7bc 100644 --- a/OCH/shuttle/passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2HPMapFragment.kt +++ b/OCH/shuttle/passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2HPMapFragment.kt @@ -7,6 +7,7 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager.getOverla import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.map.overlay.core.Level import com.mogo.map.overlay.point.Point +import com.mogo.map.MapDataWrapper import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.constant.M2Const.Companion.TYPE_MARKER_M2_LINE import com.mogo.och.bus.passenger.presenter.PM2ADASPresenter @@ -80,8 +81,10 @@ class PM2HPMapFragment : ) { //开启线程执行起终点marker设置 val setMapMarkerRunnable = Runnable { - d("setMapMaker= " + Thread.currentThread().name, - uuid + "=latitude=" + station[1] + ",longitude=" + station[0]) + d( + "setMapMaker= " + Thread.currentThread().name, + uuid + "=latitude=" + station[1] + ",longitude=" + station[0] + ) val builder = Point.Options.Builder( TYPE_MARKER_M2_LINE, @@ -95,16 +98,12 @@ class PM2HPMapFragment : .icon3DRes(R.raw.star_marker) .longitude(station[0]) .latitude(station[1]) - val mapUIController = getMapUIController() - if (mapUIController != null) { - val centerLine = mapUIController.getCenterLineInfo( - station[0], station[1], -1f - ) - if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空 - val angle = centerLine.angle - if (angle != null) { - builder.rotate(angle.toFloat()) - } + MapDataWrapper.getCenterLineInfo( + station[0], station[1], -1f + ) { + // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空 + it?.let{ + builder.rotate(it.angle.toFloat()) } } val overlayManager = getOverlayManager() diff --git a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt index 361c88dcbe..f8873a2c85 100644 --- a/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt +++ b/OCH/sweeper/sweeper-cloud/src/main/java/com/mogo/och/sweepercloud/fragment/SweeperFragment.kt @@ -12,6 +12,7 @@ import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager 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.ToastUtils +import com.mogo.map.MapDataWrapper import com.mogo.map.overlay.core.Level import com.mogo.map.overlay.point.Point import com.mogo.och.common.module.utils.OCHThreadPoolManager @@ -44,9 +45,8 @@ import com.zhjt.mogo.adas.data.sweeper.task.SweeperTask.TaskModel import com.zhjt.mogo.adas.data.sweeper.task.cloud.s_r.SweeperTaskCloudSuspendResume import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop -import kotlinx.android.synthetic.main.fragment_och_sweeper.sweeper_cl_work_mode -import kotlinx.android.synthetic.main.fragment_och_sweeper.sweeper_current_task_view -import kotlinx.android.synthetic.main.sweeper_no_data_common_view.noTaskDataView +import kotlinx.android.synthetic.main.fragment_och_sweeper.* +import kotlinx.android.synthetic.main.sweeper_no_data_common_view.* import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch @@ -148,7 +148,8 @@ class SweeperFragment : BaseSweeperTabFragment "任务中止" SweeperTaskStop.StopTaskType.EXCEPTION -> "任务异常结束" @@ -386,7 +394,7 @@ object SweeperCloudTaskUtils { context: Context?, listener: SweeperCloudDialogClickListener? ): SweeperCloudDialog? { - var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() + val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() builder.titleStr = "任务结束" builder.contentStr = "任务已完成,干的漂亮!" builder.tipStr = "" @@ -407,7 +415,7 @@ object SweeperCloudTaskUtils { listener: SweeperCloudDialogClickListener?, isCancel: Boolean ): SweeperCloudDialog? { - var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() + val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() builder.titleStr = "任务结束" builder.contentStr = if (isCancel) "任务已取消!" else "任务已异常结束!" builder.tipStr = "" @@ -424,7 +432,7 @@ object SweeperCloudTaskUtils { context: Context?, listener: SweeperCloudDialogClickListener? ): SweeperCloudDialog? { - var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() + val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() builder.titleStr = "任务暂停" builder.contentStr = "云端暂停任务,注意车辆即将停车!" builder.tipStr = "【云端任务恢复前不可启动自动驾驶】" @@ -442,7 +450,7 @@ object SweeperCloudTaskUtils { listener: SweeperCloudDialogClickListener?, contentStr: String ): SweeperCloudDialog? { - var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() + val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder() builder.titleStr = "任务恢复" builder.contentStr = contentStr builder.tipStr = "【注意安全,坐稳扶好】" @@ -456,11 +464,11 @@ object SweeperCloudTaskUtils { @JvmStatic fun printMessage(message: MessageOrBuilder): String { - return "\n"+TextFormat.printer().escapingNonAscii(false).printToString(message) + return "\n" + TextFormat.printer().escapingNonAscii(false).printToString(message) } @JvmStatic - fun getRequestId():String{ + fun getRequestId(): String { return UUID.randomUUID().toString() } diff --git a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt index a2f0feb736..ce60dc6e1e 100644 --- a/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt +++ b/OCH/taxi/unmanned-driver/src/main/java/com/mogo/och/taxi/utils/MapMakerManager.kt @@ -3,6 +3,7 @@ package com.mogo.och.taxi.utils import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.map.MapDataWrapper import com.mogo.map.overlay.core.Level import com.mogo.map.overlay.point.Point import com.mogo.och.common.module.utils.OCHThreadPoolManager @@ -13,7 +14,7 @@ import com.mogo.och.common.module.utils.OCHThreadPoolManager */ object MapMakerManager { - fun addMapMaker(owner: String, uuid: String, lat: Double, lon: Double, resourceId: Int){ + fun addMapMaker(owner: String, uuid: String, lat: Double, lon: Double, resourceId: Int) { val setMapMarkerRunnable = Runnable { CallerLogger.d( @@ -34,17 +35,12 @@ object MapMakerManager { .icon3DRes(resourceId) .latitude(lat) .longitude(lon) - val mapUIController = - CallerMapUIServiceManager.getMapUIController() - if (mapUIController != null) { - val centerLine = - mapUIController.getCenterLineInfo( - lon, lat, -1f - ) - if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 - val angle = centerLine.angle - if (angle != null) { - builder.rotate(angle.toFloat()) + MapDataWrapper.getCenterLineInfo(// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 + lon, lat, -1f + ) { + it?.let { + if (it.angle != null) { + builder.rotate(it.angle.toFloat()) } } } @@ -55,7 +51,7 @@ object MapMakerManager { OCHThreadPoolManager.getsInstance().execute(setMapMarkerRunnable) } - fun removeMapMaker(uuid: String, lat: Double, lon: Double){ + fun removeMapMaker(uuid: String, lat: Double, lon: Double) { //开启线程移除起终点marker设置 val removeMapMarkerRunnable = Runnable { CallerLogger.d( @@ -70,7 +66,7 @@ object MapMakerManager { OCHThreadPoolManager.getsInstance().execute(removeMapMarkerRunnable) } - fun removeAllMapMarkerByOwner(owner: String){ + fun removeAllMapMarkerByOwner(owner: String) { //开启线程移除起终点marker设置 val removeAllMapMarkerRunnable = Runnable { CallerLogger.d(