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)