[3.4.0-map-sdk] fix unmanunal and sweep map invoke

This commit is contained in:
zhongchao
2023-09-19 14:28:22 +08:00
parent d584837171
commit a9a6dcdc06
4 changed files with 123 additions and 99 deletions

View File

@@ -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()

View File

@@ -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<SweeperFragment?, SweeperPresente
getCurrentTaskView().updateStartAutoPilotBtnByAutoPilotState(
state == STATUS_AUTOPILOT_ENABLE,
mCurrentRunningSubTaskInfo?.taskModel == TaskModel.AUTO,
mCurrentRunningSubTaskInfo?.taskStatus == TaskStatus.RUNNING)
mCurrentRunningSubTaskInfo?.taskStatus == TaskStatus.RUNNING
)
}
fun onSweeperFutianCleanSystemState(cleanSystemState: ChassisStatesOuterClass.SweeperFuTianTaskSystemStates) {
@@ -293,7 +294,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (subTaskList[index].subTaskId == subTaskId) {
val subBuilder = subTaskList[index].toBuilder()
subBuilder.taskStatus = subTaskStatus
if (subTaskStatus == SweeperCommon.TaskStatus.RUNNING) {
if (subTaskStatus == TaskStatus.RUNNING) {
mCurrentRunningSubTaskInfo = subBuilder.build()
//更新当前正在执行的任务状态
updateCurrentSubTaskInfo(index + 1)
@@ -303,13 +304,13 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
} else {
mCurrentRunningSubTaskInfo = null
}
if (subTaskStatus == SweeperCommon.TaskStatus.SUSPENDED) {
if (subTaskStatus == TaskStatus.SUSPENDED) {
mCurrentSuspendSubTaskInfo = subBuilder.build()
} else {
mCurrentSuspendSubTaskInfo = null
}
//判断是否结束子任务
if (subTaskStatus == SweeperCommon.TaskStatus.FINISHED) {
if (subTaskStatus == TaskStatus.FINISHED) {
//已完成的计入任务进度,未完成的不计入
ToastUtils.showLong("任务完成")
showNotice("任务完成")
@@ -317,8 +318,8 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
removeHDMapMarkerBySubTask(subTaskList[index])
}
// 其他异常结束时也需要remove marker
if (subTaskStatus == SweeperCommon.TaskStatus.ABNORMAL ||
subTaskStatus == SweeperCommon.TaskStatus.CANCEL
if (subTaskStatus == TaskStatus.ABNORMAL ||
subTaskStatus == TaskStatus.CANCEL
) {
removeHDMapMarkerBySubTask(subTaskList[index])
}
@@ -384,7 +385,10 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// mLoadingDialog.showLoading()
// //ToastUtils.showLong("确认")
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.RECEIVED)
mPresenter?.sendSweeperStopTaskResp(
taskId,
SweeperTaskStop.StopTaskCode.RECEIVED
)
}
override fun onRefuseOrEnd() {
@@ -398,7 +402,10 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// mLoadingDialog.showLoading()
// //ToastUtils.showLong("倒计时")
// 发送接收到信息的ACK回执
mPresenter?.sendSweeperStopTaskResp(taskId, SweeperTaskStop.StopTaskCode.RECEIVED)
mPresenter?.sendSweeperStopTaskResp(
taskId,
SweeperTaskStop.StopTaskCode.RECEIVED
)
}
override fun onNext() {
@@ -468,7 +475,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 云端同步大任务状态
*/
fun onSweeperCloudBigTaskStatus(taskId: String, bigTaskStatus: SweeperCommon.TaskStatus, isPop: Boolean) {
fun onSweeperCloudBigTaskStatus(
taskId: String,
bigTaskStatus: SweeperCommon.TaskStatus,
isPop: Boolean
) {
//隐藏loading
mLoadingDialog.hideLoading()
mTaskInfo?.let {
@@ -477,16 +488,17 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
return
}
//大任务处于取消状态/异常结束/正常结束 时都代表大任务结束了,任务列表切换为无任务列表状态
if (bigTaskStatus == SweeperCommon.TaskStatus.CANCEL
|| bigTaskStatus == SweeperCommon.TaskStatus.ABNORMAL
|| bigTaskStatus == SweeperCommon.TaskStatus.FINISHED
if (bigTaskStatus == TaskStatus.CANCEL
|| bigTaskStatus == TaskStatus.ABNORMAL
|| bigTaskStatus == TaskStatus.FINISHED
) {
mPresenter?.isHasTaskInfo(false)
if (isPop) {
mDialog = if (bigTaskStatus == SweeperCommon.TaskStatus.CANCEL
|| bigTaskStatus == SweeperCommon.TaskStatus.ABNORMAL){
sweeperCloudTaskExceptionEndDialog(bigTaskStatus == SweeperCommon.TaskStatus.CANCEL)}
else
mDialog = if (bigTaskStatus == TaskStatus.CANCEL
|| bigTaskStatus == TaskStatus.ABNORMAL
) {
sweeperCloudTaskExceptionEndDialog(bigTaskStatus == TaskStatus.CANCEL)
} else
sweeperCloudTaskNormalEndDialog()
mDialog?.show()
}
@@ -495,29 +507,29 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
// 大任务这里也判断移除HD Marker, 双重判断
removeHDMapMarkerBySubTask(mCurrentRunningSubTaskInfo)
resetTaskInfoPanel()
} else if (bigTaskStatus == SweeperCommon.TaskStatus.SUSPENDED) {// 暂停
} else if (bigTaskStatus == TaskStatus.SUSPENDED) {// 暂停
showNotice("任务已暂停")
ToastUtils.showLong("任务已暂停")
//更新任务列表中大任务状态
val builder = it.toBuilder()
builder.taskStatus = SweeperCommon.TaskStatus.SUSPENDED
builder.taskStatus = TaskStatus.SUSPENDED
mTaskInfo = builder.build()
getCurrentTaskView().setData(mTaskInfo, getCurrentRunningSubTaskPosition())
} else if (it.taskStatus == SweeperCommon.TaskStatus.SUSPENDED
&& bigTaskStatus == SweeperCommon.TaskStatus.RUNNING
} else if (it.taskStatus == TaskStatus.SUSPENDED
&& bigTaskStatus == TaskStatus.RUNNING
) { //恢复
showNotice("任务已恢复")
ToastUtils.showLong("任务已恢复")
//更新任务列表中大任务状态
val builder = it.toBuilder()
builder.taskStatus = SweeperCommon.TaskStatus.RUNNING
builder.taskStatus = TaskStatus.RUNNING
mTaskInfo = builder.build()
getCurrentTaskView().setData(mTaskInfo, getCurrentRunningSubTaskPosition())
} else if (bigTaskStatus == SweeperCommon.TaskStatus.RUNNING) { //首次开始运行的时候,非恢复后的运行
} else if (bigTaskStatus == TaskStatus.RUNNING) { //首次开始运行的时候,非恢复后的运行
//更新任务列表中大任务状态
val builder = it.toBuilder()
builder.taskStatus = SweeperCommon.TaskStatus.RUNNING
builder.taskStatus = TaskStatus.RUNNING
mTaskInfo = builder.build()
getCurrentTaskView().setData(mTaskInfo, getCurrentRunningSubTaskPosition())
}
@@ -637,7 +649,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
mSubMutableList = mTaskInfo?.subListList
mSubMutableList?.apply {
for (index in 0 until size) {
if (get(index).taskStatus == SweeperCommon.TaskStatus.RUNNING) {
if (get(index).taskStatus == TaskStatus.RUNNING) {
mCurrentRunningSubTaskInfo = get(index)
updateCurrentSubTaskInfo(index + 1)
return index
@@ -691,7 +703,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
if (mTaskInfo?.taskId != taskId) return
val subInfo = getSubTaskInfoBySubId(subTaskId)
subInfo?.let {
updateSubTaskInfo(taskId, subTaskId, SweeperCommon.TaskStatus.RUNNING)
updateSubTaskInfo(taskId, subTaskId, TaskStatus.RUNNING)
if (isPop) {
showSubTaskConfirmDialog(taskId, subTaskId, it)
@@ -858,7 +870,10 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 大任务恢复弹框
*/
private fun sweeperCloudTaskResumeDialog(contentStr: String, taskId: String): SweeperCloudDialog? {
private fun sweeperCloudTaskResumeDialog(
contentStr: String,
taskId: String
): SweeperCloudDialog? {
return createSweeperTaskResumeDialog(context, object : SweeperCloudDialogClickListener {
override fun onConfirm() {
// 发送接收到信息的ACK回执
@@ -901,8 +916,18 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
val hdMarkerIdStart = "marker_sweeper_subtask_${subTask.subTaskId}_start"
val hdMarkerIdEnd = "marker_sweeper_subtask_${subTask.subTaskId}_end"
val setStartMarkerRunnable = createSetHDMapMakerRunnable(hdMarkerIdStart, startPoint.wgsLongitude, startPoint.wgsLatitude, true)
val setEndMarkerRunnable = createSetHDMapMakerRunnable(hdMarkerIdEnd, endPoint.wgsLongitude, endPoint.wgsLatitude, false)
val setStartMarkerRunnable = createSetHDMapMakerRunnable(
hdMarkerIdStart,
startPoint.wgsLongitude,
startPoint.wgsLatitude,
true
)
val setEndMarkerRunnable = createSetHDMapMakerRunnable(
hdMarkerIdEnd,
endPoint.wgsLongitude,
endPoint.wgsLatitude,
false
)
val removeMarkerRunnable = createRemoveHDMapMakerRunnable()
val addSubTaskHDMarkRunnable = Runnable {
@@ -930,11 +955,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
longitude: Double,
latitude: Double,
isStartMarker: Boolean
) : Runnable {
): Runnable {
//开启线程执行起终点marker设置
val setMapMarkerRunnable = Runnable {
CallerLogger.d(
SceneConstant.M_SWEEPER + "-" +TAG + "-setMapMaker",
SceneConstant.M_SWEEPER + "-" + TAG + "-setMapMaker",
"threadName=${Thread.currentThread().name}, uuid=$uuid, latitude=$latitude, longitude=$longitude"
)
@@ -948,14 +973,10 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
.icon3DRes(if (isStartMarker) R.raw.star_marker else R.raw.end_marker)
.longitude(longitude)
.latitude(latitude)
val mapUIController = CallerMapUIServiceManager.getMapUIController()
if (mapUIController != null) {
val centerLine = mapUIController.getCenterLineInfo(longitude, latitude, -1f)
if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
val angle = centerLine.angle
if (angle != null) {
builder.rotate(angle.toFloat())
}
MapDataWrapper.getCenterLineInfo(longitude, latitude, -1f) {
// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
it?.let {
builder.rotate(it.angle.toFloat())
}
}
val overlayManager = CallerMapUIServiceManager.getOverlayManager()
@@ -967,11 +988,11 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
/**
* 移除高精地图里的Marker Runnable
*/
private fun createRemoveHDMapMakerRunnable() : Runnable{
private fun createRemoveHDMapMakerRunnable(): Runnable {
//开启线程移除起终点marker设置
val removeMapMarkerRunnable = Runnable {
CallerLogger.d(
SceneConstant.M_SWEEPER + "-" +TAG + "-RemoveMapMaker",
SceneConstant.M_SWEEPER + "-" + TAG + "-RemoveMapMaker",
"threadName=${Thread.currentThread().name}"
)
val overlayManager = CallerMapUIServiceManager.getOverlayManager()

View File

@@ -9,6 +9,7 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig
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.DateTimeUtil
@@ -30,7 +31,7 @@ import com.zhjt.mogo.adas.data.sweeper.task.big.SweeperBigTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.confirm.SweeperTaskConfirm.TaskConfirm
import com.zhjt.mogo.adas.data.sweeper.task.status.SweeperTaskStatus
import com.zhjt.mogo.adas.data.sweeper.task.stop.SweeperTaskStop
import java.util.UUID
import java.util.*
object SweeperCloudTaskUtils {
const val TAG = "SweeperCloudTaskUtils"
@@ -66,10 +67,10 @@ object SweeperCloudTaskUtils {
subBuilder0.taskStatus = SweeperCommon.TaskStatus.TO_START
val startLocation0 = Location.newBuilder()
startLocation0.siteName = "自动驾驶子任务起点0"
startLocation0.wgsLongitude =112.56970262448544
startLocation0.wgsLongitude = 112.56970262448544
startLocation0.wgsLatitude = 26.817567832504274
startLocation0.longitude = 112.57493487730413
startLocation0.latitude = 26.81397095451884
startLocation0.latitude = 26.81397095451884
subBuilder0.startLocation = startLocation0.build()
val endLocation0 = Location.newBuilder()
endLocation0.siteName = "自动驾驶子任务终点0"
@@ -156,7 +157,10 @@ object SweeperCloudTaskUtils {
System.currentTimeMillis(),
builder.build()
)
CallerLogger.d(SceneConstant.M_SWEEPER + TAG, "messageType:" + messageType.number + "taskInfo:" + printMessage(builder.build()))
CallerLogger.d(
SceneConstant.M_SWEEPER + TAG,
"messageType:" + messageType.number + "taskInfo:" + printMessage(builder.build())
)
}
/**
@@ -244,10 +248,13 @@ object SweeperCloudTaskUtils {
*/
@JvmStatic
fun mockAddHdMarker(uuid: String, longitude: Double, latitude: Double, isStartMarker: Boolean) {
//开启线程执行起终点marker设置
//开启线程执行起终点marker设置
val setMapMarkerRunnable = Runnable {
val builder =
Point.Options.Builder(SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END, Level.MAP_MARKER)
Point.Options.Builder(
SweeperConst.TYPE_MARKER_SWEEPER_SUBTASK_START_END,
Level.MAP_MARKER
)
.setId(uuid)
.anchor(0.5f, 0.5f)
.set3DMode(true)
@@ -256,14 +263,10 @@ object SweeperCloudTaskUtils {
.icon3DRes(if (isStartMarker) R.raw.star_marker else R.raw.end_marker)
.longitude(longitude)
.latitude(latitude)
val mapUIController = CallerMapUIServiceManager.getMapUIController()
if (mapUIController != null) {
val centerLine = mapUIController.getCenterLineInfo(longitude, latitude, -1f)
if (null != centerLine) { // 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
val angle = centerLine.angle
if (angle != null) {
builder.rotate(angle.toFloat())
}
MapDataWrapper.getCenterLineInfo(longitude, latitude, -1f) {
// 有可能鹰眼map为空没有角度。判空使用后可能造成maker角度跟道路角度不一致 地图未初始化会返回空
it?.let {
builder.rotate(it.angle.toFloat())
}
}
val overlayManager = CallerMapUIServiceManager.getOverlayManager()
@@ -294,18 +297,23 @@ object SweeperCloudTaskUtils {
* 创建接收大任务弹窗
*/
@JvmStatic
fun createReceivedBigTaskInfoDialog(context: Context?, listener: SweeperCloudDialogClickListener?, taskInfo: TaskInfo): SweeperCloudDialog? {
var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
fun createReceivedBigTaskInfoDialog(
context: Context?,
listener: SweeperCloudDialogClickListener?,
taskInfo: TaskInfo
): SweeperCloudDialog? {
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
val startCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskStartTime)
val endCalendar = DateTimeUtil.formatLongToCalendar(taskInfo.taskEndTime)
builder.titleStr = "任务接取"
builder.contentStr = "已为您接取任务${taskInfo.taskName}"
builder.tipStr = "(任务时间${DateTimeUtil.formatCalendarToString(startCalendar, DateTimeUtil.HH_mm)}-${
DateTimeUtil.formatCalendarToString(
endCalendar,
DateTimeUtil.HH_mm
)
}"
builder.tipStr =
"(任务时间${DateTimeUtil.formatCalendarToString(startCalendar, DateTimeUtil.HH_mm)}-${
DateTimeUtil.formatCalendarToString(
endCalendar,
DateTimeUtil.HH_mm
)
}"
builder.leftStr = "确认"
builder.middleStr = ""
builder.rightStr = ""
@@ -323,7 +331,7 @@ object SweeperCloudTaskUtils {
listener: SweeperCloudDialogClickListener?,
subTaskInfo: SubTaskInfo
): SweeperCloudDialog? {
var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
builder.titleStr = "子任务确认"
builder.contentStr = "请确认并执行子任务 ${subTaskInfo.subTaskName}"
builder.tipStr =
@@ -346,7 +354,7 @@ object SweeperCloudTaskUtils {
stopTaskType: SweeperTaskStop.StopTaskType,
timeoutStr: String
): SweeperCloudDialog? {
var builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
val builder: SweeperCloudDialog.Builder = SweeperCloudDialog.Builder()
val titleStr = when (stopTaskType) {
SweeperTaskStop.StopTaskType.ADVANCE -> "任务中止"
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()
}

View File

@@ -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(