[6.5.0][道路事件][Marker绘制] 添加marker移除逻辑

This commit is contained in:
renwj
2024-07-17 18:13:31 +08:00
parent cc952b723a
commit d9cab485f8
2 changed files with 7 additions and 2 deletions

View File

@@ -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
}
}

View File

@@ -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)
}
}