From f1bb1e59fae12a01267a153144543f073f3be394 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Sat, 11 Mar 2023 15:06:10 +0800 Subject: [PATCH] =?UTF-8?q?[sweeper]=20[=E5=8F=AA=E5=B1=95=E7=A4=BA?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E5=AD=90=E4=BB=BB=E5=8A=A1=E7=9A=84=E7=BB=88?= =?UTF-8?q?=E7=82=B9=E5=9D=90=E6=A0=87]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ISweeperTaskDataToFragmentCallback.kt | 1 + .../fragment/BaseSweeperTabFragment.java | 21 ++++++- .../och/sweeper/fragment/SweeperFragment.kt | 19 +++++- .../fragment/WeltMapOverViewFragment.kt | 10 ++++ .../mogo/och/sweeper/view/WeltMapOverView.kt | 40 +++++++++---- .../mogo/och/sweeper/view/WeltSmallMapView.kt | 59 +++++++++++-------- 6 files changed, 111 insertions(+), 39 deletions(-) diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskDataToFragmentCallback.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskDataToFragmentCallback.kt index a028dc42ce..2677042385 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskDataToFragmentCallback.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/callback/ISweeperTaskDataToFragmentCallback.kt @@ -11,4 +11,5 @@ interface ISweeperTaskDataToFragmentCallback { fun clearAllMarkerAndPolyline() fun setProgress(progress:String) fun setTaskListCoordinatesLatLng(coordinatesLatLng: ArrayList) + fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng) } \ No newline at end of file diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java index 7dffab403d..c6c6374cbd 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/fragment/BaseSweeperTabFragment.java @@ -92,6 +92,8 @@ public abstract class BaseSweeperTabFragment mWeltDataBeanList;//存储贴边数据 private ArrayList mSubTaskCoordinates;//存储当前大任务的所有子任务起点和终点 + // 当前子任务的终点坐标 + protected LatLng mCurrentTaskEndStation; private ArrayList mRouteList;//存储任务的坐标轨迹 private String mProgress; private ISweeperTaskDataToFragmentCallback mTaskDataToFragmentCallback; @@ -415,8 +417,14 @@ public abstract class BaseSweeperTabFragment + val latLng = bundle.getParcelable("subTaskEndCoordinates") val weltDataList = bundle.getSerializable("weltDataList") as? ArrayList val routeList = bundle.getSerializable("routeList") as? ArrayList val progress = bundle.getString("progress") routeList?.let { weltMapOverView.setRouteList(it) } + latLng?.let { + setCurrentTaskCoordinatesLatLng(it) + } latLngs?.let { setTaskListCoordinatesLatLng(it) } @@ -64,6 +68,7 @@ class WeltMapOverViewFragment() : BaseFragment(), ISweeperTaskDataToFragmentCall @JvmStatic fun newInstance( mIWeltMapSwitchToSmallCallBack: IWeltMapSwitchToSmallCallback, + mCurrentTaskEndStation:LatLng?, weltDataList: ArrayList?, latLngs: ArrayList?, routeList: ArrayList?, @@ -73,6 +78,7 @@ class WeltMapOverViewFragment() : BaseFragment(), ISweeperTaskDataToFragmentCall val args = Bundle() args.putSerializable("weltDataList", weltDataList) args.putSerializable("subTaskCoordinates", latLngs) + args.putParcelable("subTaskEndCoordinates", mCurrentTaskEndStation) args.putSerializable("routeList", routeList) args.putString("progress", progress) val fragment = WeltMapOverViewFragment() @@ -101,6 +107,10 @@ class WeltMapOverViewFragment() : BaseFragment(), ISweeperTaskDataToFragmentCall weltMapOverView.setTaskListCoordinatesLatLng(coordinatesLatLng) } + override fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng) { + weltMapOverView.setCurrentTaskCoordinatesLatLng(coordinatesLatLng) + } + override fun clearAllMarkerAndPolyline() { weltMapOverView.clearAllMarkerAndPolyline() } diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltMapOverView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltMapOverView.kt index c981c53244..22e0e73042 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltMapOverView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltMapOverView.kt @@ -34,7 +34,8 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { private var mAMap: AMap? = null private var mWeltPolylines: Polyline? = null private var mRoutePolylines: Polyline?=null - private val mLineMarkers: MutableList = mutableListOf() +// private val mLineMarkers: MutableList = mutableListOf() + private var mEndStationMarker: Marker? = null private var mFirst: Boolean = false //清扫车任务地图 @@ -192,25 +193,32 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { * 绘制起点和终点的marker */ private fun drawStartAndEndMarker(startPoint: LatLng, endPoint: LatLng) { - val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_start_maker_icon))) - startMarker?.position = startPoint - mLineMarkers.add(startMarker) - val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_end_maker_icon))) - endMarker?.position = endPoint - mLineMarkers.add(endMarker) +// val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_start_maker_icon))) +// startMarker?.position = startPoint +// mLineMarkers.add(startMarker) +// val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_end_maker_icon))) +// endMarker?.position = endPoint +// mLineMarkers.add(endMarker) + } + + private fun drawEndMarker(endPoint: LatLng){ + mEndStationMarker?.remove() + mEndStationMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_big_end_maker_icon))) + mEndStationMarker?.position = endPoint } /** * 清除所有标记和路线 */ fun clearAllMarkerAndPolyline() { - for (i in mLineMarkers.indices) { - mLineMarkers[i]?.isVisible = false - mLineMarkers[i]?.remove() - } +// for (i in mLineMarkers.indices) { +// mLineMarkers[i]?.isVisible = false +// mLineMarkers[i]?.remove() +// } + mEndStationMarker?.remove() mWeltPolylines?.remove() mRoutePolylines?.remove() - mLineMarkers.clear() +// mLineMarkers.clear() //mFirst = false //showOrHiddenLegendData(false) } @@ -265,6 +273,14 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { } } } + /** + * 设置当前大任务的所有子任务起终点集合 + */ + fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng) { + ThreadUtils.runOnUiThread { + drawEndMarker(coordinatesLatLng) + } + } /** * 设置图例数据 diff --git a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltSmallMapView.kt b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltSmallMapView.kt index 21a7c955a5..bf9b0a4309 100644 --- a/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltSmallMapView.kt +++ b/OCH/mogo-och-sweeper/src/main/java/com/mogo/och/sweeper/view/WeltSmallMapView.kt @@ -35,7 +35,8 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { private var mAMap: AMap? = null private var mWeltPolylines: Polyline? = null private var mRoutePolylines: Polyline?=null - private val mLineMarkers: MutableList = mutableListOf() +// private val mLineMarkers: MutableList = mutableListOf() + private var endStationMarker:Marker? = null //清扫车任务地图 private val TAG = "WeltMapView" @@ -199,17 +200,17 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { * 添加起点和终点的marker */ private fun addStartAndEndMarker(startPoint: LatLng, endPoint: LatLng) { - for (i in mLineMarkers.indices) { - mLineMarkers[i]?.isVisible = false - mLineMarkers[i]?.remove() - } - mLineMarkers.clear() - val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_small_start_marker_icon))) - startMarker?.position = startPoint - mLineMarkers.add(startMarker) - val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_small_end_marker_icon))) - endMarker?.position = endPoint - mLineMarkers.add(endMarker) +// for (i in mLineMarkers.indices) { +// mLineMarkers[i]?.isVisible = false +// mLineMarkers[i]?.remove() +// } +// mLineMarkers.clear() +// val startMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_small_start_marker_icon))) +// startMarker?.position = startPoint +// mLineMarkers.add(startMarker) +// val endMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_small_end_marker_icon))) +// endMarker?.position = endPoint +// mLineMarkers.add(endMarker) } /** @@ -217,25 +218,35 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener { */ fun setTaskListCoordinatesLatLng(coordinatesLatLng: MutableList) { this.mTaskCoordinatesLatLng = coordinatesLatLng - if (mTaskCoordinatesLatLng.size > 0) { - d( - SceneConstant.M_SWEEPER + TAG, - "startPoint:${mTaskCoordinatesLatLng[0]} endPoint:${mTaskCoordinatesLatLng[mTaskCoordinatesLatLng.size - 1]}" - ) - addStartAndEndMarker(mTaskCoordinatesLatLng[0], mTaskCoordinatesLatLng[mTaskCoordinatesLatLng.size - 1]) - } +// if (mTaskCoordinatesLatLng.size > 0) { +// d( +// SceneConstant.M_SWEEPER + TAG, +// "startPoint:${mTaskCoordinatesLatLng[0]} endPoint:${mTaskCoordinatesLatLng[mTaskCoordinatesLatLng.size - 1]}" +// ) +// addStartAndEndMarker(mTaskCoordinatesLatLng[0], mTaskCoordinatesLatLng[mTaskCoordinatesLatLng.size - 1]) +// } + } + + /** + * 设置当前大任务的所有子任务起终点集合 + */ + fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng) { + endStationMarker?.remove() + endStationMarker = mAMap?.addMarker(MarkerOptions().icon(BitmapDescriptorFactory.fromResource(R.drawable.sweeper_small_end_marker_icon))) + endStationMarker?.position = coordinatesLatLng } /** * 清除所有标记和路线 */ fun clearAllMarkerAndPolyline() { - for (i in mLineMarkers.indices) { - mLineMarkers[i]?.isVisible = false - mLineMarkers[i]?.remove() - } +// for (i in mLineMarkers.indices) { +// mLineMarkers[i]?.isVisible = false +// mLineMarkers[i]?.remove() +// } + endStationMarker?.remove() mWeltPolylines?.remove() - mLineMarkers.clear() +// mLineMarkers.clear() mRoutePolylines?.remove() //mFirst = false //showOrHiddenWelt(false)