[sweeper]
[只展示当前子任务的终点坐标]
This commit is contained in:
@@ -11,4 +11,5 @@ interface ISweeperTaskDataToFragmentCallback {
|
||||
fun clearAllMarkerAndPolyline()
|
||||
fun setProgress(progress:String)
|
||||
fun setTaskListCoordinatesLatLng(coordinatesLatLng: ArrayList<LatLng>)
|
||||
fun setCurrentTaskCoordinatesLatLng(coordinatesLatLng: LatLng)
|
||||
}
|
||||
@@ -92,6 +92,8 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
private DriverMsgBoxBubbleView mViewDriverMsgBoxBubble;
|
||||
private ArrayList<WeltDataBean> mWeltDataBeanList;//存储贴边数据
|
||||
private ArrayList<LatLng> mSubTaskCoordinates;//存储当前大任务的所有子任务起点和终点
|
||||
// 当前子任务的终点坐标
|
||||
protected LatLng mCurrentTaskEndStation;
|
||||
private ArrayList<SweeperRoutePlanningUpdateReqBean.Result> mRouteList;//存储任务的坐标轨迹
|
||||
private String mProgress;
|
||||
private ISweeperTaskDataToFragmentCallback mTaskDataToFragmentCallback;
|
||||
@@ -415,8 +417,14 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
if (isShow) {
|
||||
mFlWeltMapOverView.setVisibility(View.VISIBLE);
|
||||
if (mWeltMapOverViewFragment == null) {
|
||||
mWeltMapOverViewFragment = mWeltMapOverViewFragment.newInstance((IWeltMapSwitchToSmallCallback) this, mWeltDataBeanList,
|
||||
mSubTaskCoordinates, mRouteList, mProgress, (SweeperFragment) this);
|
||||
mWeltMapOverViewFragment = mWeltMapOverViewFragment.newInstance(
|
||||
(IWeltMapSwitchToSmallCallback) this,
|
||||
mCurrentTaskEndStation,
|
||||
mWeltDataBeanList,
|
||||
mSubTaskCoordinates,
|
||||
mRouteList,
|
||||
mProgress,
|
||||
(SweeperFragment) this);
|
||||
}
|
||||
if (mWeltMapOverViewFragment.isHidden()) {
|
||||
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)
|
||||
@@ -476,6 +484,15 @@ public abstract class BaseSweeperTabFragment<V extends IView, P extends Presente
|
||||
}
|
||||
}
|
||||
|
||||
public void setCurrentTaskEndMarker(LatLng subTaskCoordinate) {
|
||||
if (mMapWeltView != null) {
|
||||
mMapWeltView.setCurrentTaskCoordinatesLatLng(subTaskCoordinate);
|
||||
}
|
||||
if (mTaskDataToFragmentCallback != null) {
|
||||
mTaskDataToFragmentCallback.setCurrentTaskCoordinatesLatLng(subTaskCoordinate);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除marker标记和任务路线数据
|
||||
*/
|
||||
|
||||
@@ -312,7 +312,7 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
setEndStationMarker()
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -477,10 +477,27 @@ class SweeperFragment : BaseSweeperTabFragment<SweeperFragment?, SweeperPresente
|
||||
dataList.add(index+1,endLatLng)
|
||||
}
|
||||
setTaskListCoordinatesLatLng(dataList)
|
||||
setEndStationMarker()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun setEndStationMarker(){
|
||||
lifecycleScope.launch(Dispatchers.IO) {
|
||||
mSubInfo?.let {
|
||||
val endPoint = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(
|
||||
AbsMogoApplication.getApp(),
|
||||
it.endWgs84Lon,
|
||||
it.endWgs84Lat
|
||||
)
|
||||
super.mCurrentTaskEndStation = endPoint
|
||||
setCurrentTaskEndMarker(endPoint)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//模拟结束子任务
|
||||
override fun debugEndSubTask() {
|
||||
//mPresenter?.onArriveTaskEnd(null)
|
||||
|
||||
@@ -41,12 +41,16 @@ class WeltMapOverViewFragment() : BaseFragment(), ISweeperTaskDataToFragmentCall
|
||||
val bundle = arguments
|
||||
if (bundle != null) {
|
||||
val latLngs = bundle.getSerializable("subTaskCoordinates") as? ArrayList<LatLng>
|
||||
val latLng = bundle.getParcelable<LatLng>("subTaskEndCoordinates")
|
||||
val weltDataList = bundle.getSerializable("weltDataList") as? ArrayList<WeltDataBean>
|
||||
val routeList = bundle.getSerializable("routeList") as? ArrayList<SweeperRoutePlanningUpdateReqBean.Result>
|
||||
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<WeltDataBean>?,
|
||||
latLngs: ArrayList<LatLng>?,
|
||||
routeList: ArrayList<SweeperRoutePlanningUpdateReqBean.Result>?,
|
||||
@@ -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()
|
||||
}
|
||||
|
||||
@@ -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<Marker?> = mutableListOf()
|
||||
// private val mLineMarkers: MutableList<Marker?> = 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)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置图例数据
|
||||
|
||||
@@ -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<Marker?> = mutableListOf()
|
||||
// private val mLineMarkers: MutableList<Marker?> = 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<LatLng>) {
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user