diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt index 14311ff67a..4991af4547 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/remove/MarkerRemoveManager.kt @@ -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 + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt index d27373bc91..0e5ec742a4 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt @@ -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) } }