[6.5.0][道路事件][Marker绘制] 添加marker移除逻辑
This commit is contained in:
@@ -219,4 +219,8 @@ object MarkerRemoveManager {
|
||||
fun peekMarker(id: String): MarkerWrapper? {
|
||||
return showedMarkers.find { it.id == id }
|
||||
}
|
||||
|
||||
fun removeMarker(id: String): Boolean {
|
||||
return peekMarker(id)?.let { removeMarker(it) } ?: false
|
||||
}
|
||||
}
|
||||
@@ -102,7 +102,6 @@ class AiRoadMarker {
|
||||
fun marker(marker: Marker, drawMarker: Boolean, drawRoadLine: Boolean = false, isHighFrequency:Boolean = false) {
|
||||
val markerId = marker.id
|
||||
if (isHighFrequency && drawMarker) {
|
||||
this.marker.set(marker)
|
||||
Logger.d(TAG, "marker --->poiType: $marker, ${EventTypeEnumNew.getMarker3DRes(marker.poiType)}")
|
||||
val builder = getOrPutPointOptionBuilder(markerId, V2XConst.V2X_MARKER_OWNER, MAP_MARKER)
|
||||
builder
|
||||
@@ -120,6 +119,7 @@ class AiRoadMarker {
|
||||
CallerMapUIServiceManager.getOverlayManager()?.showOrUpdatePoint(builder.build())?.let { p ->
|
||||
if (!markerIds.contains(markerId)) {
|
||||
markerIds.add(markerId)
|
||||
this.marker.set(marker)
|
||||
var distance = 10
|
||||
if (marker.poiType == EventTypeEnumNew.TYPE_SOCKET_ROAD_OTHER_RETROGRADE_VEHICLE.poiType) {
|
||||
distance = 100
|
||||
@@ -299,7 +299,7 @@ class AiRoadMarker {
|
||||
wrapper.onRemoved = { id ->
|
||||
aiMakers.remove(id)?.also {
|
||||
val m = it.marker.get()
|
||||
CallerRoadV2NEventWindowListenerManager.dismiss("${m.poi_lon}-${m.poi_lat}")
|
||||
CallerRoadV2NEventWindowListenerManager.dismiss(m.id)
|
||||
}
|
||||
}
|
||||
MarkerRemoveManager.addMarker(wrapper)
|
||||
@@ -328,6 +328,7 @@ class AiRoadMarker {
|
||||
if (marker.poiType == EventTypeEnumNew.TYPE_SOCKET_ROAD_GREE_WAVE.poiType) {
|
||||
CallerHmiManager.dismissGreenWave()
|
||||
} else {
|
||||
MarkerRemoveManager.removeMarker(marker.id)
|
||||
CallerRoadV2NEventWindowListenerManager.dismiss(marker.id)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user