diff --git a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml index 2c0db1f901..38c6964ead 100644 --- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml @@ -290,9 +290,16 @@ app:layout_constraintBottom_toBottomOf="@id/module_mogo_och_badcase_rl" app:layout_constraintLeft_toRightOf="@id/module_mogo_och_badcase_rl" app:layout_constraintTop_toTopOf="@id/module_mogo_och_badcase_rl" - app:roma_open_bg="@drawable/bus_operation_status_select_bg" app:roma_close_bg="@drawable/bus_operation_status_bg" - /> + app:roma_open_bg="@drawable/bus_operation_status_select_bg" /> + + + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent" /> + + + + + + + + + + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintLeft_toLeftOf="parent" + app:layout_constraintTop_toTopOf="parent" /> + android:layout_marginBottom="@dimen/dp_20" + android:scaleType="fitCenter" + android:src="@drawable/video_btn_selector" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintLeft_toLeftOf="parent" /> \ No newline at end of file diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml index 6e58362b02..e133328a37 100644 --- a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml @@ -317,6 +317,14 @@ app:roma_close_bg="@drawable/taxi_operation_status_bg" /> + + diff --git a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml index 8be81cb34d..676837db9a 100644 --- a/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -81,6 +81,15 @@ app:roma_close="@drawable/roma_taxi_p_bg_selector" app:roma_open="@drawable/taxi_p_roma_checked" /> + + + + + + + + + + + diff --git a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml index bdb06a665e..264d62e0ae 100644 --- a/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml +++ b/OCH/taxi/unmanned-passenger/src/main/res/layout/taxi_p_base_fragment.xml @@ -1,7 +1,6 @@ @@ -9,20 +8,19 @@ android:id="@+id/overMapView" android:layout_width="match_parent" android:layout_height="match_parent" - app:resetDrawable="@null" - app:startPointDrawable="@drawable/taxi_p_map_view_dir_start" - app:endPointDrawable="@drawable/taxi_p_map_view_dir_end" + app:arrivedDrawable="@drawable/taxi_overmap_arrived" + app:bottomPadding="160" app:carDrawable="@drawable/taxi_p_map_car" app:compassDrawable="@drawable/taxi_p_map_car_light" - app:arrivedDrawable="@drawable/taxi_overmap_arrived" - app:unArrivedDrawable="@drawable/taxi_overmap_arriving" + app:endPointDrawable="@drawable/taxi_p_map_view_dir_end" + app:leftPadding="800" app:mapStyleExtraPath="style_extra.data" app:mapStylePath="style.data" - app:leftPadding="800" + app:resetDrawable="@null" app:rightPadding="160" + app:startPointDrawable="@drawable/taxi_p_map_view_dir_start" app:topPadding="160" - app:bottomPadding="160" - /> + app:unArrivedDrawable="@drawable/taxi_overmap_arriving" /> + android:layout_height="match_parent" /> + app:layout_constraintStart_toStartOf="parent" + app:pnc_size="@dimen/dp_44" /> + + + + + + + + + + + app:traffic_light_user="traffic_light_taxi_p" /> + app:layout_constraintRight_toLeftOf="@id/traffic_light_view" + app:layout_constraintTop_toTopOf="parent" + app:user="taxi_p" /> + app:layout_constraintStart_toStartOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" /> + app:layout_constraintBottom_toTopOf="@id/aciv_xiaozhi_normal" + app:layout_constraintEnd_toEndOf="parent" /> + android:layout_height="wrap_content" + android:layout_marginTop="@dimen/dp_120" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintTop_toTopOf="parent" /> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaBusView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaBusView.kt index 21077b9aaf..92df0b1e4d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaBusView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaBusView.kt @@ -57,7 +57,7 @@ class RomaBusView @JvmOverloads constructor( } setOnClickListener { - if (ClickUtils.isClickTooFrequent(this,1000)) { + if (ClickUtils.isClickTooFrequent(this,2500)) { return@setOnClickListener } if(!click){ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaDistanceView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaDistanceView.kt new file mode 100644 index 0000000000..c430936723 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaDistanceView.kt @@ -0,0 +1,79 @@ +package com.mogo.eagle.core.function.hmi.ui.widget + +import android.content.Context +import android.text.Html +import android.util.AttributeSet +import android.util.Log +import android.util.TypedValue +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.function.api.map.roma.IMoGoRomaListener +import com.mogo.eagle.core.function.call.map.CallerMapRomaListener +import com.mogo.eagle.core.function.hmi.R +import kotlinx.android.synthetic.main.view_roma_distance.view.* +import me.jessyan.autosize.utils.AutoSizeUtils + +class RomaDistanceView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr) , IMoGoRomaListener { + + companion object { + private const val TAG = "RomaDistanceView" + } + + private var disChangeColor = false + + init { + LayoutInflater.from(context).inflate(R.layout.view_roma_distance, this, true) + val a = context.obtainStyledAttributes( + attrs, + R.styleable.RomaDistanceView, + defStyleAttr, + 0 + ) +// val distanceBg = a.getResourceId(R.styleable.RomaDistanceView_roma_distance_bg,0) +// if(distanceBg != 0){ +// romaDistanceBg.background = resources.getDrawable(distanceBg) +// } + val txtSize = a.getInteger(R.styleable.RomaDistanceView_roma_txt_size,35) + romaDistanceMeter.setTextSize(TypedValue.COMPLEX_UNIT_PX, + AutoSizeUtils.dp2px(getContext(),txtSize.toFloat()).toFloat()) + val txtDisColor = a.getBoolean(R.styleable.RomaDistanceView_roma_change_dis_color,false) + disChangeColor = txtDisColor + a.recycle() + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMapRomaListener.addListener(TAG, this) + } + + override fun romaStatus(status: Boolean) { + super.romaStatus(status) + if (status) { + romaDistanceBg.visibility = View.VISIBLE + } else { + romaDistanceBg.visibility = View.GONE + romaDistanceMeter.text = "" + } + } + + override fun romaDistance(distance: String) { + super.romaDistance(distance) + val dis = distance.toDouble().toInt() + Log.i(TAG, "romaDistance:$distance") + if(disChangeColor){ + romaDistanceMeter.text = Html.fromHtml("漫游距离${dis}米") + }else{ + romaDistanceMeter.text = "漫游距离${dis}米" + } + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMapRomaListener.removeListener(TAG) + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaTaxiView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaTaxiView.kt index 1dae638eca..da4ea8e09d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaTaxiView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/RomaTaxiView.kt @@ -55,7 +55,7 @@ class RomaTaxiView @JvmOverloads constructor( } setOnClickListener { - if (ClickUtils.isClickTooFrequent(this,1000)) { + if (ClickUtils.isClickTooFrequent(this,2500)) { return@setOnClickListener } if(!click){ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/layer_roma_distance_bg.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/layer_roma_distance_bg.xml new file mode 100644 index 0000000000..06ba5c4b03 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/layer_roma_distance_bg.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/roma_distance_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/roma_distance_bg.png new file mode 100644 index 0000000000..633e03243e Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/roma_distance_bg.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_roma_distance.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_roma_distance.xml new file mode 100644 index 0000000000..621006cb4e --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_roma_distance.xml @@ -0,0 +1,22 @@ + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml index ff93b33d7e..a499467d91 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/attr.xml @@ -102,4 +102,10 @@ + + + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt index 8a63e45178..cff26f0a4f 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/ai/AiCloudIdentifyDataManager.kt @@ -55,7 +55,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, private const val H_ERROR_MAP = 2 private const val H_DELAY_TIME = 3_000L - var START_METRE = 3 + var START_METRE = 200 var END_METRE = 2000 @JvmStatic @@ -164,12 +164,14 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, } private fun openRoma() { + CallerMapUIServiceManager.getMapUIController()?.visualAngleLock(true) updateLongSightLevel(true) requestRangeOfIdentify(true) } @Synchronized private fun closeRoma(manual: Boolean = true) { + CallerMapUIServiceManager.getMapUIController()?.visualAngleLock(false) updateLongSightLevel(false) requestRangeOfIdentify(false) MapIdentifySubscriber.instance.clearAiCloudRoma() @@ -260,11 +262,14 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, mutableMapOf("romaStart" to "地图漫游动画结束,开始漫游") ) showAiCloud.set(true) - FunctionBuildConfig.isDrawIdentifyData = false +// FunctionBuildConfig.isDrawIdentifyData = false CallerMapRomaListener.invokeMapRoma(true) // 5秒没有触发 则预警日志写入 handler.sendEmptyMessageDelayed(H_ERROR_CLOUD, H_DELAY_TIME) } + 5 -> { + CallerMapRomaListener.invokeRomaDistance(msg) + } 1 -> { val m = Message.obtain() m.what = H_ERROR_MAP @@ -296,7 +301,7 @@ class AiCloudIdentifyDataManager : IMoGoPlanningRottingListener, showAiCloud.set(false) aiCloudDataChange.set(false) MapIdentifySubscriber.instance.clearAiCloudRoma() - FunctionBuildConfig.isDrawIdentifyData = true +// FunctionBuildConfig.isDrawIdentifyData = true CallerMapRomaListener.invokeMapRoma(false) if (invokeCloud) { closeRoma(false) diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/roma/IMoGoRomaListener.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/roma/IMoGoRomaListener.kt index 2754e7021c..a87065f809 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/roma/IMoGoRomaListener.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/roma/IMoGoRomaListener.kt @@ -11,4 +11,9 @@ interface IMoGoRomaListener { * 漫游状态回调 */ fun romaStatus(status:Boolean){} + + /** + * 漫游距自车的距离 + */ + fun romaDistance(distance:String){} } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRomaListener.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRomaListener.kt index eba9a74557..06e194f6ac 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRomaListener.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapRomaListener.kt @@ -29,4 +29,12 @@ object CallerMapRomaListener : CallerBase() { listener.romaStatus(romaStatus) } } + + fun invokeRomaDistance(distance: String) { + M_LISTENERS.forEach { + val listener = it.value + listener.romaDistance(distance) + } + } + } \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index fb6a5a8f96..e49b92deed 100644 --- a/gradle.properties +++ b/gradle.properties @@ -80,7 +80,7 @@ MOGO_LOCATION_VERSION=1.4.7.16 MOGO_TELEMATIC_VERSION=1.4.7.16 ######## MogoAiCloudSDK Version ######## # 自研地图 -MAP_SDK_VERSION=2.14.3.7 +MAP_SDK_VERSION=2.14.3.9 MAP_SDK_OPERATION_VERSION=1.1.4.1 # websocket WEBSOCKET_VERSION=1.1.7 diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index 806c12dd4b..05e423ca97 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -59,6 +59,12 @@ public interface IMogoMapUIController { */ void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng); + /** + * 切换视角锁定,用于启动/关闭漫游 + * @param lock 锁定值 + */ + void visualAngleLock(boolean lock); + /** * 设置漫游路径 * @param trajectory diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 925c9f1a6b..a978a4e03c 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -123,6 +123,8 @@ public class AMapViewWrapper implements IMogoMapView, private IHdCacheListener hdCacheListener; + private volatile boolean visualLock = false; + public AMapViewWrapper(MapAutoView mMapView) { CallerLogger.i(M_MAP + TAG, "autoop--AMapViewWrapper: init"); this.mMapView = mMapView; @@ -337,6 +339,10 @@ public class AMapViewWrapper implements IMogoMapView, @Override public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) { + if(visualLock){ + CallerLogger.e(M_MAP + TAG, "视角切换已锁定"); + return; + } MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper(); if (mapAutoViewHelper != null) { mVisualAngleMode = angelMode; @@ -353,6 +359,11 @@ public class AMapViewWrapper implements IMogoMapView, } } + @Override + public void visualAngleLock(boolean lock) { + visualLock = lock; + } + @ChainLog( linkChainLog = CHAIN_TYPE_HD_MAP, linkCode = CHAIN_SOURCE_MAP, diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java index 6a5dfd35f4..5b045dd1e0 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java @@ -139,7 +139,7 @@ public class AMapWrapper implements IMogoMap { } long time = markerOptionsArrayList.get(0).getTime(); batchMarkerOptions.list = markerOptionsArrayList; -// batchMarkerOptions.averageFlag = 0; + batchMarkerOptions.averageFlag = 0; batchMarkerOptions.delayStrategy = false; batchMarkerOptions.ruleAngle = 8.0f; batchMarkerOptions.controlIcon = 1; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index 7f68078bf7..622e74980d 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -2,7 +2,6 @@ package com.mogo.map; import android.graphics.Point; import android.graphics.Rect; -import android.location.Location; import android.view.View; import com.mogo.eagle.core.data.map.CenterLine; @@ -93,6 +92,15 @@ public class MogoMapUIController implements IMogoMapUIController { } } + @Override + public void visualAngleLock(boolean lock) { + initDelegate(); + if (mDelegate != null) { + CallerLogger.d(TAG, "visualAngleLock: " + lock); + mDelegate.visualAngleLock(lock); + } + } + @Override public void setRoamTrajectory(String trajectory) { initDelegate(); diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 7936a87a64..25cca46586 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -77,6 +77,13 @@ public class AMapUIController implements IMogoMapUIController { } } + @Override + public void visualAngleLock(boolean lock) { + if (mClient != null) { + mClient.visualAngleLock(lock); + } + } + @Override public void setRoamTrajectory(String trajectory) { if (mClient != null) {