From 090cc247b50ae9823b2a9f2d40b79936ceb2089e Mon Sep 17 00:00:00 2001 From: renwj Date: Fri, 17 Nov 2023 19:09:41 +0800 Subject: [PATCH] =?UTF-8?q?[6.2.0][=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2]?= =?UTF-8?q?=20=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=88=96=E8=AE=BE=E7=BD=AE=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=A7=86=E8=A7=92=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo-core-function-biz/build.gradle | 1 + .../biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt | 3 +- .../scene/road/V2XRoadEventScenario.java | 4 +- .../build.gradle | 1 + .../datacenter/obu/MogoObuDcCombineManager.kt | 2 +- .../obu/MogoPrivateObuNewManager.kt | 1 + .../angle/MoGoVisualAngleChangeProvider.kt | 3 + .../core/function/angle/scenes/CrossRoad.kt | 21 +++++++ .../core/function/angle/scenes/Default.kt | 27 +++++++++ .../core/function/angle/scenes/RoadEvent.kt | 22 ++++++++ .../core/function/api/map/angle/Scenes.kt | 56 +------------------ .../map/uicontroller/IMogoMapUIController.kt | 10 ++++ .../main/java/com/mogo/map/AMapViewWrapper.kt | 15 +++++ 13 files changed, 108 insertions(+), 58 deletions(-) create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt diff --git a/core/function-impl/mogo-core-function-biz/build.gradle b/core/function-impl/mogo-core-function-biz/build.gradle index b8c39fa11c..b3d65170dc 100644 --- a/core/function-impl/mogo-core-function-biz/build.gradle +++ b/core/function-impl/mogo-core-function-biz/build.gradle @@ -67,6 +67,7 @@ dependencies { kapt rootProject.ext.dependencies.androidxroomcompiler implementation rootProject.ext.dependencies.androidxroomktx implementation rootProject.ext.dependencies.localbroadcastmanager + compileOnly project(':core:function-impl:mogo-core-function-map') implementation project(':foudations:mogo-commons') implementation project(':core:mogo-core-utils') diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt index 82d0486c8d..3ba30d6dfe 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt @@ -9,9 +9,10 @@ import com.mogo.eagle.core.data.enums.WarningDirectionEnum.ALERT_WARNING_TOP import com.mogo.eagle.core.data.map.entity.* import com.mogo.eagle.core.data.msgbox.* import com.mogo.eagle.core.data.msgbox.MsgBoxType.V2X +import com.mogo.eagle.core.function.angle.scenes.Default +import com.mogo.eagle.core.function.angle.scenes.RoadEvent import com.mogo.eagle.core.function.api.autopilot.* import com.mogo.eagle.core.function.api.hmi.warning.* -import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.hmi.* import com.mogo.eagle.core.function.call.map.* diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java index ab653f43cc..fbc3095148 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/road/V2XRoadEventScenario.java @@ -12,9 +12,9 @@ import com.mogo.eagle.core.data.map.entity.V2XRoadEventEntity; import com.mogo.eagle.core.data.msgbox.MsgBoxBean; import com.mogo.eagle.core.data.msgbox.MsgBoxType; import com.mogo.eagle.core.data.msgbox.V2XMsg; +import com.mogo.eagle.core.function.angle.scenes.Default; +import com.mogo.eagle.core.function.angle.scenes.RoadEvent; import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener; -import com.mogo.eagle.core.function.api.map.angle.Default; -import com.mogo.eagle.core.function.api.map.angle.RoadEvent; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; diff --git a/core/function-impl/mogo-core-function-datacenter/build.gradle b/core/function-impl/mogo-core-function-datacenter/build.gradle index 533179e500..1e1721f3b6 100644 --- a/core/function-impl/mogo-core-function-datacenter/build.gradle +++ b/core/function-impl/mogo-core-function-datacenter/build.gradle @@ -62,6 +62,7 @@ dependencies { implementation project(':libraries:mogo-obu') implementation project(':libraries:mogo-adas') implementation rootProject.ext.dependencies.mogoaicloudtelematic + compileOnly project(':core:function-impl:mogo-core-function-map') implementation project(':core:mogo-core-function-call') implementation project(":foudations:mogo-commons") } diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt index d9d8940c8a..966544606d 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoObuDcCombineManager.kt @@ -8,12 +8,12 @@ import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.enums.TrafficLightEnum import com.mogo.eagle.core.data.enums.WarningDirectionEnum +import com.mogo.eagle.core.function.angle.scenes.CrossRoad import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuWarningMapListener import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuWarningRsiListener import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuWarningRsmListener import com.mogo.eagle.core.function.api.datacenter.obu.IMoGoObuWarningSpatListener import com.mogo.eagle.core.function.api.hmi.warning.* -import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.* diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt index ac55e5cfb9..29a9eefbec 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/obu/MogoPrivateObuNewManager.kt @@ -6,6 +6,7 @@ import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HmiBuildConfig import com.mogo.eagle.core.data.enums.* import com.mogo.eagle.core.data.obu.MogoObuConst +import com.mogo.eagle.core.function.angle.scenes.CrossRoad import com.mogo.eagle.core.function.api.hmi.warning.IMoGoWarningStatusListener import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt index 192f8b9633..dc042c5a1d 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt @@ -9,6 +9,9 @@ import androidx.lifecycle.Lifecycle.Event.ON_DESTROY import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.eagle.core.data.constants.MogoServicePaths import com.mogo.eagle.core.data.map.* +import com.mogo.eagle.core.function.angle.scenes.CrossRoad +import com.mogo.eagle.core.function.angle.scenes.Default +import com.mogo.eagle.core.function.angle.scenes.RoadEvent import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.api.map.angle.Scene import com.mogo.eagle.core.function.call.autopilot.* diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt new file mode 100644 index 0000000000..88cc360870 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/CrossRoad.kt @@ -0,0 +1,21 @@ +package com.mogo.eagle.core.function.angle.scenes + +import com.mogo.eagle.core.function.api.map.angle.Scene +import com.mogo.map.uicontroller.VisualAngleMode +import com.mogo.map.uicontroller.VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS + +/** + * 十字路口 + */ +class CrossRoad(var open: Boolean = false): Scene { + override val angle: VisualAngleMode + get() = MAP_STYLE_VR_ANGLE_CROSS + + override val priority: Int = 4 + override val displayThreshold: Long + get() = -1 + + override fun toString(): String { + return "CrossRoad(open: ${open}, priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority})" + } +} diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt new file mode 100644 index 0000000000..b9fefc1db2 --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/Default.kt @@ -0,0 +1,27 @@ +package com.mogo.eagle.core.function.angle.scenes + +import com.mogo.eagle.core.function.api.map.angle.Scene +import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager +import com.mogo.map.uicontroller.VisualAngleMode +import com.mogo.map.uicontroller.VisualAngleMode.MODE_MEDIUM_SIGHT +import java.util.concurrent.TimeUnit + +/** + * 默认视图 + * @param delay: 表示多少稍后,默认值为2 + * @param unit: 时间单位,默认为秒 + */ +class Default(val delay: Long = 2, val unit: TimeUnit = TimeUnit.SECONDS): Scene { + + override val angle: VisualAngleMode + get() = CallerMapUIServiceManager.getMapUIController()?.getVrAngleDefaultMode() ?: MODE_MEDIUM_SIGHT + + override val priority: Int = 1 + + override val displayThreshold: Long + get() = 0 + + override fun toString(): String { + return "Default(delay=$delay, unit=$unit, angle=$angle, priority=$priority)" + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt new file mode 100644 index 0000000000..052824749d --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/scenes/RoadEvent.kt @@ -0,0 +1,22 @@ +package com.mogo.eagle.core.function.angle.scenes + +import com.mogo.eagle.core.function.api.map.angle.Scene +import com.mogo.map.uicontroller.VisualAngleMode +import java.util.concurrent.TimeUnit + +/** + * 道路事件 + */ +class RoadEvent(val poi_lon: Double, val poi_lat: Double, val poi_angle: Double, val isGps: Boolean = true): Scene { + + override val angle: VisualAngleMode = VisualAngleMode.MODE_LONG_SIGHT + + override val priority: Int = 5 + + override val displayThreshold: Long + get() = TimeUnit.SECONDS.toMillis(8) + + override fun toString(): String { + return "RoadEvent(priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority}, lon: $poi_lon, lat: $poi_lat, angle: $poi_angle)" + } +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt index 8e6d2c6f06..7f559a3e82 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/angle/Scenes.kt @@ -1,68 +1,16 @@ package com.mogo.eagle.core.function.api.map.angle import com.mogo.map.uicontroller.* -import java.util.concurrent.* -import java.util.concurrent.TimeUnit.SECONDS -private interface IAttach { +interface IAttach { val angle: VisualAngleMode val priority: Int val displayThreshold: Long //最大展示时长 > 0; 表示最长展示多长时间, -1 表示,一直展示,直到触发默认视角, 0: 默认视角专用值, } -sealed class Scene: IAttach +interface Scene: IAttach -/** - * 默认视图 - * @param delay: 表示多少稍后,默认值为2 - * @param unit: 时间单位,默认为秒 - */ -class Default(val delay: Long = 2, val unit: TimeUnit = SECONDS): Scene() { - - override val angle: VisualAngleMode = VisualAngleMode.MODE_MEDIUM_SIGHT - - override val priority: Int = 1 - - override val displayThreshold: Long - get() = 0 - - override fun toString(): String { - return "Default(delay=$delay, unit=$unit, angle=$angle, priority=$priority)" - } -} -/** - * 道路事件 - */ -class RoadEvent(val poi_lon: Double, val poi_lat: Double, val poi_angle: Double, val isGps: Boolean = true): Scene() { - - override val angle: VisualAngleMode = VisualAngleMode.MODE_LONG_SIGHT - - override val priority: Int = 5 - - override val displayThreshold: Long - get() = SECONDS.toMillis(8) - - override fun toString(): String { - return "RoadEvent(priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority}, lon: $poi_lon, lat: $poi_lat, angle: $poi_angle)" - } -} - - -/** - * 十字路口 - */ -class CrossRoad(var open: Boolean = false): Scene() { - override val angle: VisualAngleMode = VisualAngleMode.MAP_STYLE_VR_ANGLE_CROSS - override val priority: Int = 4 - override val displayThreshold: Long - get() = -1 - - override fun toString(): String { - return "CrossRoad(open: ${open}, priority=${priority}, displayThreshold: ${displayThreshold}, priority=${priority})" - } -} - diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.kt index 76911fb12b..f924bf6193 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.kt +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.kt @@ -320,4 +320,14 @@ interface IMogoMapUIController { */ fun setDisplayAnimEnable(displayAnimEnable: Boolean) + + /** + * 获取地图默认视角 + */ + fun getVrAngleDefaultMode(): VisualAngleMode + + /** + * 设置地图默认视角 + */ + fun setVrAngleDefaultMode(mode: VisualAngleMode) } \ No newline at end of file diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt index 908888d2eb..ca06611102 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.kt @@ -28,6 +28,7 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.map.listener.MogoMapListenerHandler.Companion.mogoMapListenerHandler import com.mogo.map.uicontroller.* +import com.mogo.map.uicontroller.VisualAngleMode.MODE_MEDIUM_SIGHT import com.mogo.map.utils.MapTraceUtil import com.mogo.map.utils.MogoMapUtils import com.mogo.map.utils.ObjectUtils @@ -880,4 +881,18 @@ class AMapViewWrapper(mMapView: MapAutoView) : IMogoMapView, IMogoMapUIControlle invokeMapRomaRange(status == 1) } + + override fun setVrAngleDefaultMode(mode: VisualAngleMode) { + if (checkAMapView()) { + mMapView.getMapStyleParams()?.setVrAngleDefaultMode(mode.code) + } + } + + override fun getVrAngleDefaultMode(): VisualAngleMode { + if (checkAMapView()) { + val code = mMapView.getMapStyleParams()?.getVrAngleDefaultMode() + return VisualAngleMode.values().find { it.code == code } ?: MODE_MEDIUM_SIGHT + } + return MODE_MEDIUM_SIGHT + } } \ No newline at end of file