From 7ee74ae8e1817690daa2a84a41e969726e7ddc82 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Wed, 25 Sep 2024 17:31:26 +0800 Subject: [PATCH] =?UTF-8?q?[6.7.0][Opt]=E8=AE=A2=E5=8D=95=E7=BB=93?= =?UTF-8?q?=E6=9D=9F=E6=97=B6=E6=B8=85=E9=99=A4=E7=BB=98=E5=88=B6=E7=9A=84?= =?UTF-8?q?Marker=E5=92=8C=E7=BA=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/hmi/map/MapContainerLayout.kt | 15 ++++- .../main/res/layout/view_map_container.xml | 1 + .../core/function/view/TravelRealityView.kt | 53 ++++++++++++------ .../main/res/drawable-xhdpi/small_map_end.png | Bin 0 -> 3063 bytes .../res/drawable-xhdpi/small_map_start.png | Bin 0 -> 2620 bytes .../drawable-nodpi/taxi_overmap_endpoint.png | Bin 5218 -> 5212 bytes .../taxi_overmap_startpoint.png | Bin 0 -> 4332 bytes .../main/res/drawable-xhdpi/small_map_car.png | Bin 0 -> 6766 bytes 8 files changed, 51 insertions(+), 18 deletions(-) create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/small_map_end.png create mode 100644 core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/small_map_start.png create mode 100644 core/mogo-core-res/src/main/res/drawable-nodpi/taxi_overmap_startpoint.png create mode 100644 core/mogo-core-res/src/main/res/drawable-xhdpi/small_map_car.png 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 ea0536e19b..e5c73749d6 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 @@ -11,6 +11,8 @@ 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.api.order.IOrderListener +import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.function.hmi.util.ConstraintUtil import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener @@ -25,8 +27,9 @@ class MapContainerLayout @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr), IMogoMapListener { +) : ConstraintLayout(context, attrs, defStyleAttr), IMogoMapListener, IOrderListener { + @Volatile private var isScaled = false private var isPlayingAnim = false private var constraintUtil: ConstraintUtil? = null @@ -71,6 +74,7 @@ class MapContainerLayout @JvmOverloads constructor( override fun onAttachedToWindow() { super.onAttachedToWindow() MogoMapListenerHandler.mogoMapListenerHandler.registerHostMapListener("${TAG}${this.hashCode()}",this) + CallerOrderListenerManager.addListener("${TAG}${this.hashCode()}", this) } override fun onDetachedFromWindow() { @@ -90,6 +94,15 @@ class MapContainerLayout @JvmOverloads constructor( super.onMapClick(latLng) } + override fun onUpdateOrderStatus(inOrder: Boolean) { + super.onUpdateOrderStatus(inOrder) + if (!inOrder) {// 订单结束 + if (isScaled) {// 行程总览地图 + overMapView.clearAllMarkersAndPolyline() + } + } + } + private fun swapViewsWithAnim() { if (isPlayingAnim) return if (constraintUtil == null) { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml index c3a269ef50..1b9d9f084e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_map_container.xml @@ -26,6 +26,7 @@ app:bottomPadding="160" app:carDrawable="@drawable/taxt_u_p_map_car" app:compassDrawable="@drawable/taxt_u_p_map_car_light" + app:startPointDrawable="@drawable/taxi_overmap_startpoint" app:endPointDrawable="@drawable/taxi_overmap_endpoint" app:globalPathColor="#39BA90" app:layout_constraintBottom_toBottomOf="parent" 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 2a8a24a822..c074825a1b 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 @@ -226,7 +226,7 @@ class TravelRealityView @JvmOverloads constructor( */ @Volatile private var isSmallMap: Boolean = true - private var iconRes = R.drawable.map_car_icon + private var iconRes = R.drawable.small_map_car private var globalPathResp: MessagePad.GlobalPathResp? = null private val mCoordinatesLatLng: MutableList = ArrayList() private var mSmallCarMarker: Marker? = null @@ -394,13 +394,6 @@ class TravelRealityView @JvmOverloads constructor( 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)) @@ -408,11 +401,11 @@ class TravelRealityView @JvmOverloads constructor( ) mSmallStartMarker = mAMap?.addMarker( MarkerOptions() - .icon(BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_dir_start)) + .icon(BitmapDescriptorFactory.fromResource(R.drawable.small_map_start)) ) mSmallEndMarker = mAMap?.addMarker( MarkerOptions() - .icon(BitmapDescriptorFactory.fromResource(R.drawable.module_small_map_view_dir_end)) + .icon(BitmapDescriptorFactory.fromResource(R.drawable.small_map_end)) ) // 加载自定义样式 val customMapStyleOptions = CustomMapStyleOptions() @@ -671,7 +664,16 @@ class TravelRealityView @JvmOverloads constructor( // roadWidth = maxRoadWidth // globalWidth = maxGlobalWidth // } - + val optionList = ArrayList() + optionList.add( + MarkerOptions().apply { + icon(BitmapDescriptorFactory.fromResource(startPointDrawable)) + position(coordinateConverterWgsToGcj( + globalData[0].lat, + globalData[0].lon + )) + } + ) val endOption = MarkerOptions() endOption.icon(BitmapDescriptorFactory.fromResource(endPointDrawable)) endOption.position( @@ -680,8 +682,9 @@ class TravelRealityView @JvmOverloads constructor( globalData[globalData.size - 1].lon ) ) - // 绘制终点 - drawEndMarker(endOption) + optionList.add(endOption) + // 绘制起终点 + drawStartEndMarker(optionList) // 绘制全局轨迹 drawPolyline(DRAW_POLY_LINE, globalOptions) } @@ -1315,7 +1318,7 @@ class TravelRealityView @JvmOverloads constructor( } } - private fun drawEndMarker(options: MarkerOptions) { + private fun drawStartEndMarker(options: List) { Message.obtain().apply { what = DRAW_END_MARKER obj = options @@ -1493,6 +1496,11 @@ class TravelRealityView @JvmOverloads constructor( 30 ) ) + mPolyline = mAMap!!.addPolyline( + PolylineOptions() + .color(Color.argb(255, 77, 212, 100))// 255, 31, 127, 255 + .width(12f) + ) // 绘制线 mPolyline?.points = mCoordinatesLatLng CallerLogger.d( @@ -1766,7 +1774,7 @@ class TravelRealityView @JvmOverloads constructor( DRAW_END_MARKER -> { removeMessages(DRAW_END_MARKER) if (isMapDestroyed) return - realDrawEndMarker(msg.obj as MarkerOptions) + realDrawEndMarker(msg.obj as ArrayList) } UPDATE_VIDEO_MARKER -> { @@ -1975,13 +1983,22 @@ class TravelRealityView @JvmOverloads constructor( } } - private fun realDrawEndMarker(options: MarkerOptions) { + private fun realDrawEndMarker(options: List) { Log.d(TAG, "realDrawEndMarker") + mStartMarker?.destroy() + mStartMarker = null mEndMarker?.destroy() mEndMarker = null + if (options.size < 2) return + if (startPointDrawable != -1) { + mStartMarker = mAMap?.addMarker( + options[0] + ) + mStartMarker?.isClickable = false + } if (endPointDrawable != -1) { mEndMarker = mAMap?.addMarker( - options + options[1] ) mEndMarker?.isClickable = false } @@ -1994,6 +2011,8 @@ class TravelRealityView @JvmOverloads constructor( private fun realClearAllMarkersAndPolyline() { Log.d(TAG, "realClearAllMarkersAndPolyline") // 清除终点 + mStartMarker?.destroy() + mStartMarker = null mEndMarker?.destroy() mEndMarker = null // 清除道路事件icon diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/small_map_end.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/small_map_end.png new file mode 100644 index 0000000000000000000000000000000000000000..9b7e68b1cae54c5900737dd40f26ea89ae261df1 GIT binary patch literal 3063 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 FV1l~a*}MP% literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/small_map_start.png b/core/function-impl/mogo-core-function-map/src/main/res/drawable-xhdpi/small_map_start.png new file mode 100644 index 0000000000000000000000000000000000000000..7dbd7e2cf017d93db76905fbd892913bdfcf47b9 GIT binary patch literal 2620 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 Y0*^e@(I!NbhyVZp07*qoM6N<$g7OXfI{*Lx diff --git a/core/mogo-core-res/src/main/res/drawable-nodpi/taxi_overmap_startpoint.png b/core/mogo-core-res/src/main/res/drawable-nodpi/taxi_overmap_startpoint.png new file mode 100644 index 0000000000000000000000000000000000000000..baca87f72fa3462f88b1c4b70213a673b38b1b2d GIT binary patch literal 4332 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 Q-v9sr07*qoM6N<$f|b$J2><{9 literal 0 HcmV?d00001