From 465a309704f27fe1da2877a28ceff2ea658b3b6d Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 24 Sep 2024 18:02:39 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0][Feat]=E5=B0=8F=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E5=92=8C=E5=85=A8=E8=A7=88=E5=9C=B0=E5=9B=BE=E5=8A=A8=E6=80=81?= =?UTF-8?q?=E5=88=87=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/map/ExchangeChildLayout.kt | 170 +++---- .../function/hmi/map/MapContainerLayout.kt | 64 ++- .../main/res/drawable-xhdpi/gaojing_bg.png | Bin 0 -> 109030 bytes .../main/res/layout/view_map_container.xml | 74 +-- .../core/function/view/TravelRealityView.kt | 456 +++++++++++++++--- 5 files changed, 510 insertions(+), 254 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/gaojing_bg.png diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/ExchangeChildLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/ExchangeChildLayout.kt index 25f6cd0136..1d8c904358 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/ExchangeChildLayout.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/ExchangeChildLayout.kt @@ -7,13 +7,8 @@ import android.animation.ObjectAnimator import android.animation.PropertyValuesHolder import android.content.Context import android.util.AttributeSet -import android.view.View import androidx.constraintlayout.widget.ConstraintLayout -import androidx.constraintlayout.widget.ConstraintSet -import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.util.ConstraintUtil -import kotlinx.android.synthetic.main.view_map_container.view.exchangeLayout -import me.jessyan.autosize.utils.AutoSizeUtils /** * 可自定义绘制顺序的ConstraintLayout @@ -184,7 +179,7 @@ class ExchangeChildLayout @JvmOverloads constructor( override fun onAnimationEnd(animation: Animator) { super.onAnimationEnd(animation) // updateLayoutParams() - swapLayoutParamsWithoutAnim() +// swapLayoutParamsWithoutAnim() invalidate() isPlayingAnim = false } @@ -192,7 +187,7 @@ class ExchangeChildLayout @JvmOverloads constructor( override fun onAnimationCancel(animation: Animator) { super.onAnimationCancel(animation) // updateLayoutParams() - swapLayoutParamsWithoutAnim() +// swapLayoutParamsWithoutAnim() invalidate() isPlayingAnim = false } @@ -220,112 +215,61 @@ class ExchangeChildLayout @JvmOverloads constructor( } } - private fun updateLayoutParams() { -// if (childCount > 2) return -// children.forEachIndexed { index, view -> -// if (index == 0) { -// changeRule(view, true) -// } else { -// changeRule(view, false) -// } + private fun swapLayoutParamsWithoutAnim() { +// if (constraintUtil == null) { +// constraintUtil = ConstraintUtil(exchangeLayout) +// } +// if (isSwapped) { +// val begin = constraintUtil!!.begin() +// // 清除约束关系 +// begin.clear(R.id.mapBizView, R.id.overMapView) +// // 设置新的约束关系 +// begin.Left_toLeftOf(R.id.overMapView, ConstraintSet.PARENT_ID) +// begin.Top_toTopOf(R.id.overMapView, ConstraintSet.PARENT_ID) +// begin.Right_toRightOf(R.id.overMapView, ConstraintSet.PARENT_ID) +// begin.Bottom_toBottomOf(R.id.overMapView, ConstraintSet.PARENT_ID) +// +// begin.Left_toLeftOf(R.id.mapBizView, ConstraintSet.UNSET) +// begin.Top_toTopOf(R.id.mapBizView, ConstraintSet.UNSET) +// begin.Right_toRightOf(R.id.mapBizView, ConstraintSet.PARENT_ID) +// begin.Bottom_toBottomOf(R.id.mapBizView, ConstraintSet.PARENT_ID) +// begin.setWidth(R.id.mapBizView, AutoSizeUtils.dp2px(context, 270f)) +// begin.setHeight(R.id.mapBizView, AutoSizeUtils.dp2px(context, 270f)) +// begin.setMargin( +// R.id.mapBizView, +// 0, +// 0, +// AutoSizeUtils.dp2px(context, 60f), +// AutoSizeUtils.dp2px(context, 60f) +// ) +// // 应用新的属性集 +// begin.commit() +// } else { +//// constraintUtil?.reSet() +// val begin = constraintUtil!!.begin() +// // 清除约束关系 +// begin.clear(R.id.mapBizView, R.id.overMapView) +// // 设置新的约束关系 +// begin.Left_toLeftOf(R.id.mapBizView, ConstraintSet.PARENT_ID) +// begin.Top_toTopOf(R.id.mapBizView, ConstraintSet.PARENT_ID) +// begin.Right_toRightOf(R.id.mapBizView, ConstraintSet.PARENT_ID) +// begin.Bottom_toBottomOf(R.id.mapBizView, ConstraintSet.PARENT_ID) +// +// begin.Left_toLeftOf(R.id.overMapView, ConstraintSet.UNSET) +// begin.Top_toTopOf(R.id.overMapView, ConstraintSet.UNSET) +// begin.Right_toRightOf(R.id.overMapView, ConstraintSet.PARENT_ID) +// begin.Bottom_toBottomOf(R.id.overMapView, ConstraintSet.PARENT_ID) +// begin.setWidth(R.id.overMapView, AutoSizeUtils.dp2px(context, 270f)) +// begin.setHeight(R.id.overMapView, AutoSizeUtils.dp2px(context, 270f)) +// begin.setMargin( +// R.id.overMapView, +// 0, +// 0, +// AutoSizeUtils.dp2px(context, 60f), +// AutoSizeUtils.dp2px(context, 60f) +// ) +// // 应用新的属性集 +// begin.commit() // } } - - private fun changeRule( - view: View, isBottom: Boolean, - ) { - val layoutParams = view.layoutParams as LayoutParams - if (isBottom) { - if (isSwapped) { - layoutParams.startToStart = LayoutParams.UNSET - layoutParams.topToTop = LayoutParams.UNSET - layoutParams.endToEnd = LayoutParams.PARENT_ID - layoutParams.bottomToBottom = LayoutParams.PARENT_ID - layoutParams.width = minWidth - layoutParams.height = minHeight - } else { - layoutParams.startToStart = LayoutParams.PARENT_ID - layoutParams.topToTop = LayoutParams.PARENT_ID - layoutParams.endToEnd = LayoutParams.UNSET - layoutParams.bottomToBottom = LayoutParams.UNSET - layoutParams.width = maxWidth - layoutParams.height = maxHeight - } - } else { - if (isSwapped) { - layoutParams.startToStart = LayoutParams.PARENT_ID - layoutParams.topToTop = LayoutParams.PARENT_ID - layoutParams.endToEnd = LayoutParams.UNSET - layoutParams.bottomToBottom = LayoutParams.UNSET - layoutParams.width = maxWidth - layoutParams.height = maxHeight - } else { - layoutParams.startToStart = LayoutParams.UNSET - layoutParams.topToTop = LayoutParams.UNSET - layoutParams.endToEnd = LayoutParams.PARENT_ID - layoutParams.bottomToBottom = LayoutParams.PARENT_ID - layoutParams.width = minWidth - layoutParams.height = minHeight - } - } - view.layoutParams = layoutParams - } - - private fun swapLayoutParamsWithoutAnim() { - if (constraintUtil == null) { - constraintUtil = ConstraintUtil(exchangeLayout) - } - if (isSwapped) { - val begin = constraintUtil!!.begin() - // 清除约束关系 - begin.clear(R.id.mapBizView, R.id.overMapView) - // 设置新的约束关系 - begin.Left_toLeftOf(R.id.overMapView, ConstraintSet.PARENT_ID) - begin.Top_toTopOf(R.id.overMapView, ConstraintSet.PARENT_ID) - begin.Right_toRightOf(R.id.overMapView, ConstraintSet.PARENT_ID) - begin.Bottom_toBottomOf(R.id.overMapView, ConstraintSet.PARENT_ID) - - begin.Left_toLeftOf(R.id.mapBizView, ConstraintSet.UNSET) - begin.Top_toTopOf(R.id.mapBizView, ConstraintSet.UNSET) - begin.Right_toRightOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - begin.Bottom_toBottomOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - begin.setWidth(R.id.mapBizView, AutoSizeUtils.dp2px(context, 270f)) - begin.setHeight(R.id.mapBizView, AutoSizeUtils.dp2px(context, 270f)) - begin.setMargin( - R.id.mapBizView, - 0, - 0, - AutoSizeUtils.dp2px(context, 60f), - AutoSizeUtils.dp2px(context, 60f) - ) - // 应用新的属性集 - begin.commit() - } else { -// constraintUtil?.reSet() - val begin = constraintUtil!!.begin() - // 清除约束关系 - begin.clear(R.id.mapBizView, R.id.overMapView) - // 设置新的约束关系 - begin.Left_toLeftOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - begin.Top_toTopOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - begin.Right_toRightOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - begin.Bottom_toBottomOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - - begin.Left_toLeftOf(R.id.overMapView, ConstraintSet.UNSET) - begin.Top_toTopOf(R.id.overMapView, ConstraintSet.UNSET) - begin.Right_toRightOf(R.id.overMapView, ConstraintSet.PARENT_ID) - begin.Bottom_toBottomOf(R.id.overMapView, ConstraintSet.PARENT_ID) - begin.setWidth(R.id.overMapView, AutoSizeUtils.dp2px(context, 270f)) - begin.setHeight(R.id.overMapView, AutoSizeUtils.dp2px(context, 270f)) - begin.setMargin( - R.id.overMapView, - 0, - 0, - AutoSizeUtils.dp2px(context, 60f), - AutoSizeUtils.dp2px(context, 60f) - ) - // 应用新的属性集 - begin.commit() - } - } } \ 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/map/MapContainerLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/MapContainerLayout.kt index 88d798552d..ea0536e19b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/MapContainerLayout.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/map/MapContainerLayout.kt @@ -6,19 +6,20 @@ import android.transition.Transition import android.transition.Transition.TransitionListener import android.util.AttributeSet import android.view.LayoutInflater -import android.view.animation.DecelerateInterpolator +import android.view.View +import android.view.animation.AccelerateDecelerateInterpolator import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.util.ConstraintUtil -import com.mogo.eagle.core.function.view.TravelRealityView +import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener import com.mogo.map.listener.IMogoMapListener import com.mogo.map.listener.MogoMapListenerHandler -import kotlinx.android.synthetic.main.view_map_container.view.exchangeLayout import kotlinx.android.synthetic.main.view_map_container.view.mapBizView import kotlinx.android.synthetic.main.view_map_container.view.overMapView -import me.jessyan.autosize.utils.AutoSizeUtils +import kotlinx.android.synthetic.main.view_map_container.view.parentLayout +import kotlinx.android.synthetic.main.view_map_container.view.shadowView class MapContainerLayout @JvmOverloads constructor( context: Context, @@ -26,7 +27,7 @@ class MapContainerLayout @JvmOverloads constructor( defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), IMogoMapListener { - private var isSwapped = false + private var isScaled = false private var isPlayingAnim = false private var constraintUtil: ConstraintUtil? = null @@ -78,77 +79,58 @@ class MapContainerLayout @JvmOverloads constructor( } private fun initView() { - overMapView.setOnGestureListener(object : TravelRealityView.OnGestureListener { - override fun onSingleTap(lng: Float, lat: Float) { - if (!exchangeLayout.getSwapFlag()) { - overMapView.setMapFlag(false) - exchangeLayout.swapViews() - } + shadowView.setOnClickListener(object : OnPreventFastClickListener() { + override fun onClickImpl(v: View?) { + swapViewsWithAnim() } }) } override fun onMapClick(latLng: MogoLatLng?) { super.onMapClick(latLng) - if (exchangeLayout.getSwapFlag()) { - overMapView.setMapFlag(true) - exchangeLayout.swapViews() - } } - @Deprecated(message = "会多次requestLayout导致高精地图卡顿") private fun swapViewsWithAnim() { if (isPlayingAnim) return if (constraintUtil == null) { - constraintUtil = ConstraintUtil(exchangeLayout, 300, DecelerateInterpolator()) + constraintUtil = ConstraintUtil(parentLayout, 300, AccelerateDecelerateInterpolator()) constraintUtil?.addTransitionListener(transitionListener) } - if (!isSwapped) { + if (!isScaled) { // 获取属性集并设置动画 val begin = constraintUtil!!.beginWithAnim() // 清除约束关系 - begin.clear(R.id.mapBizView, R.id.overMapView) + begin.clear(R.id.overMapView) // 设置新的约束关系 begin.Left_toLeftOf(R.id.overMapView, ConstraintSet.PARENT_ID) begin.Top_toTopOf(R.id.overMapView, ConstraintSet.PARENT_ID) begin.Right_toRightOf(R.id.overMapView, ConstraintSet.PARENT_ID) begin.Bottom_toBottomOf(R.id.overMapView, ConstraintSet.PARENT_ID) - - begin.Left_toLeftOf(R.id.mapBizView, ConstraintSet.UNSET) - begin.Top_toTopOf(R.id.mapBizView, ConstraintSet.UNSET) - begin.Right_toRightOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - begin.Bottom_toBottomOf(R.id.mapBizView, ConstraintSet.PARENT_ID) - begin.setWidth(R.id.mapBizView, AutoSizeUtils.dp2px(context, 270f)) - begin.setHeight(R.id.mapBizView, AutoSizeUtils.dp2px(context, 270f)) - begin.setMargin( - R.id.mapBizView, - 0, - 0, - AutoSizeUtils.dp2px(context, 60f), - AutoSizeUtils.dp2px(context, 60f) - ) // 应用新的属性集 begin.commit() - exchangeLayout.setSwapped(true) - isSwapped = true } else { constraintUtil?.reSetWidthAnim() - exchangeLayout.setSwapped(false) - isSwapped = false } } private val transitionListener = object : TransitionListener { override fun onTransitionStart(transition: Transition?) { isPlayingAnim = true + overMapView.setMapFlag(isScaled) } override fun onTransitionEnd(transition: Transition?) { isPlayingAnim = false + overMapView.swapSettings() + updateShadowBg(isScaled) + isScaled = !isScaled } override fun onTransitionCancel(transition: Transition?) { isPlayingAnim = false + overMapView.swapSettings() + updateShadowBg(isScaled) + isScaled = !isScaled } override fun onTransitionPause(transition: Transition?) { @@ -159,4 +141,12 @@ class MapContainerLayout @JvmOverloads constructor( isPlayingAnim = true } } + + private fun updateShadowBg(isSmallMap: Boolean) { + if (!isSmallMap) { + shadowView.setBackgroundResource(R.drawable.gaojing_bg) + } else { + shadowView.background = null + } + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/gaojing_bg.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/gaojing_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..e866b67c878d47714c6c738914be8df95f8f8b4f GIT binary patch literal 109030 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 - + - - + app:isWeatherEnable="false" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - - - + + + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt index f17c216c6f..e26a3bfbd0 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/TravelRealityView.kt @@ -22,6 +22,7 @@ import com.amap.api.maps.TextureMapView import com.amap.api.maps.model.AMapGestureListener import com.amap.api.maps.model.BitmapDescriptor import com.amap.api.maps.model.BitmapDescriptorFactory +import com.amap.api.maps.model.CameraPosition import com.amap.api.maps.model.CustomMapStyleOptions import com.amap.api.maps.model.LatLng import com.amap.api.maps.model.LatLngBounds @@ -30,7 +31,9 @@ import com.amap.api.maps.model.MarkerOptions import com.amap.api.maps.model.Polyline import com.amap.api.maps.model.PolylineOptions import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.data.map.MogoLatLng import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener import com.mogo.eagle.core.function.business.travelreality.CrossDeviceBean @@ -42,16 +45,23 @@ import com.mogo.eagle.core.function.business.travelreality.Point import com.mogo.eagle.core.function.business.travelreality.TravelRealityModel.Companion.travelNetWorkModel import com.mogo.eagle.core.function.business.travelreality.view.EventVideoView import com.mogo.eagle.core.function.business.travelreality.view.VideoMarkerEntity +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.map.R +import com.mogo.eagle.core.function.smp.view.SmallMapView import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.mogo.MapAssetStyleUtils +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.CoordinateUtils import com.mogo.eagle.core.utilcode.util.LocationUtils +import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import me.jessyan.autosize.utils.AutoSizeUtils import mogo.telematics.pad.MessagePad +import kotlin.math.floor /** * 行程实况View @@ -63,7 +73,7 @@ class TravelRealityView @JvmOverloads constructor( attrs: AttributeSet? = null, defStyleAttr: Int = 0 ) : ConstraintLayout(context, attrs, defStyleAttr), IMoGoChassisLocationGCJ02Listener, - IMoGoPlanningRottingListener { + IMoGoPlanningRottingListener, IMoGoAutopilotStatusListener { companion object { private const val TAG = "TravelRealityView" @@ -79,6 +89,7 @@ class TravelRealityView @JvmOverloads constructor( private const val DRAW_LIVE_DETAIL = 9 private const val DRAW_END_MARKER = 10 private const val UPDATE_VIDEO_MARKER = 11 + private const val HIDE_CAR_MARKER = 12 // private const val CLEAR_POLY_LINE = 12 // private const val CLEAR_ROAD_EVENT = 13 @@ -112,11 +123,11 @@ class TravelRealityView @JvmOverloads constructor( private val globalPolylineList by lazy { ArrayList() } - private var mStartMarker: Marker? = null - private var mEndMarker: Marker? = null @Volatile private var mLocation: MogoLocation? = null + private var mStartMarker: Marker? = null + private var mEndMarker: Marker? = null @Volatile private var isMapLoaded = false @@ -209,7 +220,19 @@ class TravelRealityView @JvmOverloads constructor( private var listener: OnDrawListener? = null private var gestureListener: OnGestureListener? = null + + /** + * ====================小地图使用的==================== + */ + @Volatile private var isSmallMap: Boolean = true + private var iconRes = R.drawable.map_car_icon + private var globalPathResp: MessagePad.GlobalPathResp? = null + private val mCoordinatesLatLng: MutableList = ArrayList() + private var mSmallCarMarker: Marker? = null + private var mPolyline: Polyline? = null + private var mSmallStartMarker: Marker? = null + private var mSmallEndMarker: Marker? = null init { try { @@ -285,6 +308,26 @@ class TravelRealityView @JvmOverloads constructor( this.isSmallMap = isSmallMap } + fun swapSettings() { + if (isSmallMap) { + Message.obtain().apply { + what = CLEAR_ALL_DATA + nonFrequentHandler?.sendMessage(this) + } + Message.obtain().apply { + what = HIDE_CAR_MARKER + nonFrequentHandler?.sendMessage(this) + } + // 显示小地图样式 + changeMapSettings(true) + } else { + clearPolyline() + hideSmallCarMarker() + // 显示行程总览地图样式 + changeMapSettings(false) + } + } + /** * 清除所有Marker和Polyline */ @@ -310,7 +353,16 @@ class TravelRealityView @JvmOverloads constructor( BitmapDescriptorFactory.fromResource(if (roadRangeDrawable != -1) roadRangeDrawable else R.drawable.mogo_road_over) roadTrajectoryBitmap = BitmapDescriptorFactory.fromResource(if (roadTrajectoryDrawable != -1) roadTrajectoryDrawable else R.drawable.road_trajectory_arrow_nor) - initAMapView() +// initTravelRealityMapView() + initSmallMapView(true) + } + + private fun changeMapSettings(isSmallMap: Boolean) { + if (isSmallMap) { + initSmallMapView(false) + } else { + initTravelRealityMapView(false) + } } private fun getBitmap1(): Bitmap { @@ -327,7 +379,83 @@ class TravelRealityView @JvmOverloads constructor( return BitmapFactory.decodeResource(resources, R.drawable.count_bg, options) } - private fun initAMapView() { + private fun initSmallMapView(isInit: Boolean) { + val cameraUpdate = CameraUpdateFactory.zoomTo(17f) + mAMap = mMapView?.map + // 关闭地图文字标注 + mAMap?.showMapText(false) + // 设置导航地图模式,aMap是地图控制器对象。 + mAMap?.mapType = AMap.MAP_TYPE_NIGHT + // 关闭显示实时路况图层,aMap是地图控制器对象。 + mAMap?.isTrafficEnabled = false + // 设置 锚点 图标 + if (isInit) { + iconRes = if (AppIdentityModeUtils.isB1(FunctionBuildConfig.appIdentityMode)) { + R.drawable.map_bus_icon + } else if (AppIdentityModeUtils.isB2(FunctionBuildConfig.appIdentityMode) || AppIdentityModeUtils.isM1(FunctionBuildConfig.appIdentityMode)) { + R.drawable.map_m2_icon + } else { + R.drawable.map_car_icon + } + mSmallCarMarker = mAMap?.addMarker( + MarkerOptions() + .icon(BitmapDescriptorFactory.fromResource(iconRes)) + .anchor(0.5f, 0.5f) + ) + mSmallStartMarker = mAMap?.addMarker( + MarkerOptions() + .icon(BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_dir_start)) + ) + mSmallEndMarker = mAMap?.addMarker( + MarkerOptions() + .icon(BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_dir_end)) + ) + // 加载自定义样式 + val customMapStyleOptions = CustomMapStyleOptions() + .setEnable(true) + .setStyleData(MapAssetStyleUtils.getAssetsStyle(context, "over_view_style.data")) + .setStyleExtraData( + MapAssetStyleUtils.getAssetsExtraStyle( + context, + "over_view_style_extra.data" + ) + ) + // 设置自定义样式 + mAMap?.setCustomMapStyle(customMapStyleOptions) + } + //设置希望展示的地图缩放级别 + mAMap?.moveCamera(cameraUpdate) + // 设置地图的样式 + val uiSettings = mAMap?.uiSettings + uiSettings?.isZoomControlsEnabled = false // 地图缩放级别的交换按钮 + uiSettings?.setAllGesturesEnabled(false) // 所有手势 + uiSettings?.isMyLocationButtonEnabled = false // 显示默认的定位按钮 + uiSettings?.setLogoBottomMargin(-150) //设置Logo下边界距离屏幕底部的边距,设置为负值即可 + if (isInit) { + mAMap?.setOnMapLoadedListener { + CallerLogger.d( + SceneConstant.M_MAP + SmallMapView.TAG, + "smp---onMapLoaded" + ) + isMapLoaded = true + // 加载自定义样式 + val customMapStyleOptions1 = CustomMapStyleOptions() + .setEnable(true) + .setStyleData(MapAssetStyleUtils.getAssetsStyle(context, "over_view_style.data")) + .setStyleExtraData( + MapAssetStyleUtils.getAssetsExtraStyle( + context, + "over_view_style_extra.data" + ) + ) + // 设置自定义样式 + mAMap?.setCustomMapStyle(customMapStyleOptions1) + } + mAMap?.setAMapGestureListener(gestListener) + } + } + + private fun initTravelRealityMapView(isInit: Boolean = false) { Log.d(TAG, "initAMapView") mAMap = mMapView?.map val mapStyleOptions = CustomMapStyleOptions() @@ -343,23 +471,21 @@ class TravelRealityView @JvmOverloads constructor( //设置希望展示的地图缩放级别 val loc = CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02() if (loc.latitude.toInt() == 0 || loc.longitude.toInt() == 0) { - mAMap?.moveCamera(CameraUpdateFactory.zoomTo(14f)) + moveMapCamera(CameraUpdateFactory.zoomTo(14f)) } else { - mAMap?.moveCamera( - CameraUpdateFactory.newLatLngZoom( - coordinateConverterWgsToGcj( - loc.latitude, - loc.longitude - ), 14f - ) - ) + moveMapCamera(CameraUpdateFactory.newLatLngZoom( + coordinateConverterWgsToGcj( + loc.latitude, + loc.longitude + ), 14f + )) } //设置地图的样式 mAMap?.uiSettings?.let { //所有手势 it.setAllGesturesEnabled(true) //地图缩放级别的交换按钮 - it.isZoomControlsEnabled = true + it.isZoomControlsEnabled = false it.isZoomGesturesEnabled = true //指南针 it.isCompassEnabled = false @@ -368,53 +494,58 @@ class TravelRealityView @JvmOverloads constructor( //定位按钮 it.isMyLocationButtonEnabled = false //去掉高德Logo - it.setLogoBottomMargin(-100) + it.setLogoBottomMargin(-150) } - - mAMap?.setOnMapLoadedListener { - Log.d(TAG, "地图加载完成!") - isMapLoaded = true - mAMap?.setCustomMapStyle(mapStyleOptions) - // 实时路况图层关闭,必须添加在loaded结束之后,其他位置不生效 - mAMap?.isTrafficEnabled = false - mAMap?.showBuildings(false) - mAMap?.uiSettings?.isZoomControlsEnabled = false + if (isInit) { + mAMap?.setOnMapLoadedListener { + Log.d(TAG, "地图加载完成!") + isMapLoaded = true + mAMap?.setCustomMapStyle(mapStyleOptions) + // 实时路况图层关闭,必须添加在loaded结束之后,其他位置不生效 + mAMap?.isTrafficEnabled = false + mAMap?.showBuildings(false) + mAMap?.uiSettings?.isZoomControlsEnabled = false // mAMap?.animateCamera(CameraUpdateFactory.changeTilt(30f)) + } + mAMap?.setAMapGestureListener(gestListener) } - mAMap?.setAMapGestureListener(object : AMapGestureListener { - override fun onDoubleTap(p0: Float, p1: Float) { - } + } - override fun onSingleTap(p0: Float, p1: Float) { - gestureListener?.onSingleTap(p0, p1) - } + private val gestListener = object : AMapGestureListener { + override fun onDoubleTap(p0: Float, p1: Float) { + } - override fun onFling(p0: Float, p1: Float) { - } + override fun onSingleTap(p0: Float, p1: Float) { + gestureListener?.onSingleTap(p0, p1) + } - override fun onScroll(p0: Float, p1: Float) { - } + override fun onFling(p0: Float, p1: Float) { + } - override fun onLongPress(p0: Float, p1: Float) { - } + override fun onScroll(p0: Float, p1: Float) { + } - override fun onDown(p0: Float, p1: Float) { - } + override fun onLongPress(p0: Float, p1: Float) { + } - override fun onUp(p0: Float, p1: Float) { - } + override fun onDown(p0: Float, p1: Float) { + } - override fun onMapStable() { - } - }) + override fun onUp(p0: Float, p1: Float) { + } + + override fun onMapStable() { + } } override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) { super.onSizeChanged(w, h, oldw, oldh) if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { if (isSmallMap) { - this.outlineProvider = TextureVideoViewOutlineProvider(AutoSizeUtils.dp2px(context, 32f) - .toFloat()) + this.outlineProvider = TextureVideoViewOutlineProvider( + AutoSizeUtils.dp2px(context, 32f) + .toFloat() + ) this.clipToOutline = true } else { this.clipToOutline = false @@ -441,6 +572,7 @@ class TravelRealityView @JvmOverloads constructor( CallerPlanningRottingListenerManager.addListener("${TAG}${this.hashCode()}", this) // 注册定位监听 CallerChassisLocationGCJ02ListenerManager.addListener("${TAG}${this.hashCode()}", this) + CallerAutoPilotStatusListenerManager.addListener("${TAG}${this.hashCode()}", this) } override fun onDetachedFromWindow() { @@ -944,9 +1076,14 @@ class TravelRealityView @JvmOverloads constructor( globalList[index + 1].lat ) // 深拷贝一下数据 - deviceInPaths.add(DeviceInfoBean(deviceBean.deviceIp, deviceBean.lon, deviceBean.lat).also { deviceInfo -> - deviceInfo.orientation = deviceBean.orientation - }) + deviceInPaths.add( + DeviceInfoBean( + deviceBean.deviceIp, + deviceBean.lon, + deviceBean.lat + ).also { deviceInfo -> + deviceInfo.orientation = deviceBean.orientation + }) crossOptionsList.add(MarkerOptions().apply { position( coordinateConverterWgsToGcj( @@ -1235,10 +1372,14 @@ class TravelRealityView @JvmOverloads constructor( override fun onChassisLocationGCJ02(gnssInfo: MogoLocation?) { gnssInfo?.let { - mLocation = it - if (isMapLoaded) { - // 绘制自车 - drawCarMarker(it) + if (!isSmallMap) { + mLocation = it + if (isMapLoaded) { + // 绘制自车 + drawCarMarker(it) + } + } else { + drawSmallMapMarker(it) } } } @@ -1252,26 +1393,193 @@ class TravelRealityView @JvmOverloads constructor( } Log.d(TAG, "下发全局轨迹!") globalPathResp?.let { globalPath -> -// nonFrequentHandler?.removeCallbacksAndMessages(null) + if (isSmallMap) { + if (globalPath.wayPointsList.size > 0) { + this.globalPathResp = globalPath + drawRotting() + } + } else { + val pointList = ArrayList() + val pointCloneList = ArrayList() + globalPath.wayPointsList.forEach { loc -> + pointList.add(Point(loc.longitude, loc.latitude)) + pointCloneList.add(Point(loc.longitude, loc.latitude)) + } + Log.d(TAG, "轨迹点个数为:${pointList.size}") + reqData = pointCloneList + handleGlobalPath(pointList) - val pointList = ArrayList() - val pointCloneList = ArrayList() - globalPath.wayPointsList.forEach { loc -> - pointList.add(Point(loc.longitude, loc.latitude)) - pointCloneList.add(Point(loc.longitude, loc.latitude)) - } - Log.d(TAG, "轨迹点个数为:${pointList.size}") - reqData = pointCloneList - handleGlobalPath(pointList) - - requestData(pointList) - if (!isRoadTrackReq) { - Log.d(TAG, "处理智慧道路轨迹!") - handleRoadTrajectories(roadTrackList, pointList) + requestData(pointList) + if (!isRoadTrackReq) { + Log.d(TAG, "处理智慧道路轨迹!") + handleRoadTrajectories(roadTrackList, pointList) + } } } } + //===================================小地图绘制起始!=================================== + override fun onAutopilotStatusResponse(state: Int) { + if (isSmallMap) { + if (state == 2) { + drawRotting() + } else { + UiThreadHandler.post { + clearPolyline() + } + } + } + } + + private fun drawRotting() { + globalPathResp?.let { + val latLngList: MutableList = ArrayList() + for (routeModel in globalPathResp!!.wayPointsList) { + latLngList.add(MogoLatLng(routeModel.latitude, routeModel.longitude)) + } + CallerLogger.d( + SceneConstant.M_MAP + SmallMapView.TAG, + "SmallMapView latLngList.size = ${latLngList.size}" + ) + if (latLngList.size > 0) { + UiThreadHandler.post { + convert(latLngList) + drawablePolyline() + } + } else { + UiThreadHandler.post { + CallerLogger.d( + SceneConstant.M_MAP + SmallMapView.TAG, + "SmallMapView latLngList.size = ${latLngList.size} clearPolyline ---->" + ) + clearPolyline() + } + } + } + } + + private fun convert(coordinates: List) { + mCoordinatesLatLng.clear() + val latLngs = coordinateConverterFrom84ForList(mContext, coordinates) + mCoordinatesLatLng.addAll(latLngs) + } + + private fun drawablePolyline() { + clearPolyline() + if (mAMap != null) { + if (mCoordinatesLatLng.size >= 2) { + // 设置开始结束Marker位置 + mSmallStartMarker!!.position = mCoordinatesLatLng[0] + mSmallEndMarker!!.position = mCoordinatesLatLng[mCoordinatesLatLng.size - 1] + mSmallStartMarker!!.setToTop() + mSmallStartMarker!!.isVisible = true + mSmallEndMarker!!.isVisible = true + mSmallEndMarker!!.setToTop() + + //存放所有点的经纬度 + val boundsBuilder = LatLngBounds.Builder() + for (i in mCoordinatesLatLng.indices) { + //把所有点都include进去(LatLng类型) + boundsBuilder.include(mCoordinatesLatLng[i]) + } + //第二个参数为四周留空宽度 + mAMap!!.animateCamera( + CameraUpdateFactory.newLatLngBounds( + boundsBuilder.build(), + 30 + ) + ) + // 绘制线 + mPolyline?.points = mCoordinatesLatLng + CallerLogger.d( + SceneConstant.M_MAP + SmallMapView.TAG, + "SmallMapView drawPolyline size is = ${mCoordinatesLatLng.size} " + ) + } + } + } + + private fun clearPolyline() { + if (mPolyline != null) { + mPolyline!!.points = emptyList() + } + if (mSmallStartMarker != null) { + mSmallStartMarker!!.isVisible = false + } + if (mSmallEndMarker != null) { + mSmallEndMarker!!.isVisible = false + } + } + + private fun hideSmallCarMarker() { + mSmallCarMarker?.isVisible = false + } + + private fun drawSmallMapMarker(mogoLocation: MogoLocation) { + mLocation = mogoLocation + if (mSmallCarMarker == null) { + mSmallCarMarker = mAMap?.addMarker( + MarkerOptions() + .icon(BitmapDescriptorFactory.fromResource(iconRes)) + .anchor(0.5f, 0.5f) + ) + } + if (mSmallCarMarker == null) { + return + } + UiThreadHandler.post { + val currentLatLng = LatLng(mLocation!!.latitude, mLocation!!.longitude) + val bearing = floor(mLocation!!.heading).toFloat() + //更新车辆位置 + mSmallCarMarker!!.position = currentLatLng + mSmallCarMarker!!.isVisible = true + if (mCoordinatesLatLng.size > 1) { + // 结束位置 + val endLatLng = mCoordinatesLatLng[mCoordinatesLatLng.size - 1] + val calculateDistance = CoordinateUtils.calculateLineDistance( + endLatLng.latitude, endLatLng.longitude, + currentLatLng.latitude, currentLatLng.longitude + ) + if (calculateDistance <= 5) { + CallerLogger.d( + SceneConstant.M_MAP + SmallMapView.TAG, + "onChassisLocationGCJ02 -----> calculateDistance <= 5 " + ) + clearPolyline() + mCoordinatesLatLng.clear() + } + } + val cameraPosition: CameraPosition = + CameraPosition.Builder() + .target(mSmallCarMarker!!.position) + .tilt(0f) + .bearing(bearing) + .zoom(17f) + .build() + mAMap?.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)) + } + } + + private fun coordinateConverterFrom84ForList( + mContext: Context?, + mogoLatLngList: List + ): List { + val list: MutableList = ArrayList() + for (m in mogoLatLngList) { + val mogoLatLng = coordinateConverterFrom84(mContext, m) + list.add(mogoLatLng) + } + return list + } + + private fun coordinateConverterFrom84(mContext: Context?, mogoLatLng: MogoLatLng): LatLng { + val mCoordinateConverter = CoordinateConverter(mContext) + mCoordinateConverter.from(CoordinateConverter.CoordType.GPS) + mCoordinateConverter.coord(LatLng(mogoLatLng.lat, mogoLatLng.lon)) + return mCoordinateConverter.convert() + } + //===================================小地图绘制结束!=================================== + private fun requestData(pointList: ArrayList) { if (!isCrossDeviceReq) { Log.d(TAG, "请求获取路口设备!") @@ -1356,6 +1664,11 @@ class TravelRealityView @JvmOverloads constructor( realDrawCar(this) } } + HIDE_CAR_MARKER -> { + removeMessages(HIDE_CAR_MARKER) + if (isMapDestroyed) return + hideCarMarker() + } DRAW_POLY_LINE -> { removeMessages(DRAW_POLY_LINE) @@ -1475,6 +1788,7 @@ class TravelRealityView @JvmOverloads constructor( val latLng = LatLng(location.latitude, location.longitude) val angle = (360 - location.heading).toFloat() if (mCarMarker != null) { + mCarMarker!!.isVisible = true mCarMarker!!.rotateAngle = angle mCarMarker!!.position = latLng } else { @@ -1488,6 +1802,7 @@ class TravelRealityView @JvmOverloads constructor( // mCarMarker?.setToTop() } if (mCompassMarker != null) { + mCompassMarker!!.isVisible = true mCompassMarker!!.rotateAngle = angle mCompassMarker!!.position = latLng } else { @@ -1500,6 +1815,11 @@ class TravelRealityView @JvmOverloads constructor( } } + private fun hideCarMarker() { + mCarMarker?.isVisible = false + mCompassMarker?.isVisible = false + } + private fun realDrawGlobalPath(polylineOptions: PolylineOptions) { Log.d(TAG, "realDrawGlobalPath") if (globalPolyline == null) {