[sweeper]
[绘制靠边数据 距离大于10米的线段设置颜色为透明]
This commit is contained in:
@@ -16,6 +16,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Liste
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
|
||||
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.ThreadUtils
|
||||
import com.mogo.och.sweeper.R
|
||||
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
|
||||
@@ -30,7 +31,7 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
private var mTaskCoordinatesLatLng: MutableList<LatLng> = mutableListOf() //当前大任务的所有起终点集合
|
||||
private var mCarMarker: Marker? = null
|
||||
private var mAMap: AMap? = null
|
||||
private var mPolylines: MutableList<Polyline?> = mutableListOf()
|
||||
private var mWeltPolylines: Polyline? = null
|
||||
private var mRoutePolylines: Polyline?=null
|
||||
private val mLineMarkers: MutableList<Marker?> = mutableListOf()
|
||||
private var mFirst: Boolean = false
|
||||
@@ -105,18 +106,32 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
*/
|
||||
private fun getRouteColorList(weltData: MutableList<WeltDataBean>):MutableList<Int> {
|
||||
val colorList= mutableListOf<Int>()
|
||||
var nextWeltDataBean:WeltDataBean?=null
|
||||
for (i in weltData.indices) {
|
||||
if (weltData[i].weltDistance == -9999.0) {//未经过
|
||||
val weltDataBean = weltData[i]
|
||||
if(i+1<weltData.size){
|
||||
nextWeltDataBean = weltData[i+1]
|
||||
val calculateLineDistance = CoordinateUtils.calculateLineDistance(
|
||||
nextWeltDataBean.locLon, nextWeltDataBean.locLat,
|
||||
weltDataBean.locLon, weltDataBean.locLat
|
||||
)
|
||||
// 大于10m
|
||||
if(calculateLineDistance>10){
|
||||
colorList.add(Color.TRANSPARENT)
|
||||
continue
|
||||
}
|
||||
}
|
||||
if (weltDataBean.weltDistance == -9999.0) {//未经过
|
||||
colorList.add(Color.parseColor("#3BA1CC"))
|
||||
} else if (weltData[i].weltDistance == -10000.0) {//非贴边
|
||||
} else if (weltDataBean.weltDistance == -10000.0) {//非贴边
|
||||
colorList.add(Color.parseColor("#236299"))
|
||||
} else if (weltData[i].weltDistance < 0) {
|
||||
} else if (weltDataBean.weltDistance < 0) {
|
||||
colorList.add(Color.parseColor("#C22101"))
|
||||
} else if (weltData[i].weltDistance >= 0 && weltData[i].weltDistance < 10) {
|
||||
} else if (weltDataBean.weltDistance >= 0 && weltDataBean.weltDistance < 10) {
|
||||
colorList.add(Color.parseColor("#4DFFA4"))
|
||||
} else if (weltData[i].weltDistance >= 10 && weltData[i].weltDistance < 20) {
|
||||
} else if (weltDataBean.weltDistance >= 10 && weltDataBean.weltDistance < 20) {
|
||||
colorList.add(Color.parseColor("#FFDD4D"))
|
||||
} else if (weltData[i].weltDistance >= 20) {
|
||||
} else if (weltDataBean.weltDistance >= 20) {
|
||||
colorList.add(Color.parseColor("#FF912B"))
|
||||
}
|
||||
}
|
||||
@@ -158,6 +173,7 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
}
|
||||
if (coordinatesLatLngs.size > 2) {
|
||||
//设置线段纹理
|
||||
mWeltPolylines?.remove()
|
||||
val polylineOptions = PolylineOptions()
|
||||
polylineOptions.addAll(coordinatesLatLngs)
|
||||
polylineOptions.width(14f) //线段宽度
|
||||
@@ -166,7 +182,7 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
polylineOptions.colorValues(colorList)
|
||||
polylineOptions.visible(true)
|
||||
// 绘制线
|
||||
mPolylines.add(mAMap?.addPolyline(polylineOptions))
|
||||
mWeltPolylines = mAMap?.addPolyline(polylineOptions)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -191,9 +207,7 @@ class WeltMapOverView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
mLineMarkers[i]?.isVisible = false
|
||||
mLineMarkers[i]?.remove()
|
||||
}
|
||||
for (i in mPolylines.indices) {
|
||||
mPolylines[i]?.remove()
|
||||
}
|
||||
mWeltPolylines?.remove()
|
||||
mRoutePolylines?.remove()
|
||||
mLineMarkers.clear()
|
||||
//mFirst = false
|
||||
|
||||
@@ -4,7 +4,6 @@ import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import android.util.AttributeSet
|
||||
import android.util.Log
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.widget.ImageView
|
||||
@@ -17,6 +16,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Liste
|
||||
import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
|
||||
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.ThreadUtils
|
||||
import com.mogo.och.sweeper.R
|
||||
import com.mogo.och.sweeper.bean.SweeperRoutePlanningUpdateReqBean
|
||||
@@ -32,7 +32,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
private var mTaskCoordinatesLatLng: MutableList<LatLng> = mutableListOf() //当前大任务的所有起终点集合
|
||||
private var mCarMarker: Marker? = null
|
||||
private var mAMap: AMap? = null
|
||||
private var mPolylines: MutableList<Polyline?> = mutableListOf()
|
||||
private var mWeltPolylines: Polyline? = null
|
||||
private var mRoutePolylines: Polyline?=null
|
||||
private val mLineMarkers: MutableList<Marker?> = mutableListOf()
|
||||
|
||||
@@ -142,6 +142,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
}
|
||||
if (coordinatesLatLngs.size > 2) {
|
||||
//设置线段纹理
|
||||
mWeltPolylines?.remove()
|
||||
val polylineOptions = PolylineOptions()
|
||||
polylineOptions.addAll(coordinatesLatLngs)
|
||||
polylineOptions.width(30f) //线段宽度
|
||||
@@ -150,7 +151,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
polylineOptions.colorValues(colorList)
|
||||
polylineOptions.visible(true)
|
||||
// 绘制线
|
||||
mPolylines.add(mAMap?.addPolyline(polylineOptions))
|
||||
mWeltPolylines = mAMap?.addPolyline(polylineOptions)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -160,18 +161,33 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
*/
|
||||
private fun getRouteColorList(weltData: MutableList<WeltDataBean>): MutableList<Int> {
|
||||
val colorList = mutableListOf<Int>()
|
||||
var nextWeltDataBean:WeltDataBean?=null
|
||||
for (i in weltData.indices) {
|
||||
if (weltData[i].weltDistance == -9999.0) {//未经过
|
||||
val weltDataBean = weltData[i]
|
||||
if(i+1<weltData.size){
|
||||
nextWeltDataBean = weltData[i+1]
|
||||
val calculateLineDistance = CoordinateUtils.calculateLineDistance(
|
||||
nextWeltDataBean.locLon, nextWeltDataBean.locLat,
|
||||
weltDataBean.locLon, weltDataBean.locLat
|
||||
)
|
||||
// 大于10m
|
||||
if(calculateLineDistance>10){
|
||||
colorList.add(Color.TRANSPARENT)
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
if (weltDataBean.weltDistance == -9999.0) {//未经过
|
||||
colorList.add(Color.parseColor("#3BA1CC"))
|
||||
} else if (weltData[i].weltDistance == -10000.0) {//非贴边
|
||||
} else if (weltDataBean.weltDistance == -10000.0) {//非贴边
|
||||
colorList.add(Color.parseColor("#236299"))
|
||||
} else if (weltData[i].weltDistance < 0) {
|
||||
} else if (weltDataBean.weltDistance < 0) {
|
||||
colorList.add(Color.parseColor("#C22101"))
|
||||
} else if (weltData[i].weltDistance >= 0 && weltData[i].weltDistance < 10) {
|
||||
} else if (weltDataBean.weltDistance >= 0 && weltDataBean.weltDistance < 10) {
|
||||
colorList.add(Color.parseColor("#4DFFA4"))
|
||||
} else if (weltData[i].weltDistance >= 10 && weltData[i].weltDistance < 20) {
|
||||
} else if (weltDataBean.weltDistance >= 10 && weltDataBean.weltDistance < 20) {
|
||||
colorList.add(Color.parseColor("#FFDD4D"))
|
||||
} else if (weltData[i].weltDistance >= 20) {
|
||||
} else if (weltDataBean.weltDistance >= 20) {
|
||||
colorList.add(Color.parseColor("#FF912B"))
|
||||
}
|
||||
}
|
||||
@@ -217,9 +233,7 @@ class WeltSmallMapView : ConstraintLayout, IMoGoChassisLocationGCJ02Listener {
|
||||
mLineMarkers[i]?.isVisible = false
|
||||
mLineMarkers[i]?.remove()
|
||||
}
|
||||
for (i in mPolylines.indices) {
|
||||
mPolylines[i]?.remove()
|
||||
}
|
||||
mWeltPolylines?.remove()
|
||||
mLineMarkers.clear()
|
||||
mRoutePolylines?.remove()
|
||||
//mFirst = false
|
||||
|
||||
Reference in New Issue
Block a user