From f32c5a3b2b07020357eb6d367d2a3beb7d3b2f5e Mon Sep 17 00:00:00 2001 From: renwj Date: Tue, 28 Mar 2023 21:02:47 +0800 Subject: [PATCH] =?UTF-8?q?[2.15.0]=20=E4=BC=98=E5=8C=96=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt | 6 +++--- .../function/biz/v2x/v2n/remove/MarkerRemoveManager.kt | 5 +++-- .../biz/v2x/v2n/scenario/scene/airoad/AiRoadMarker.kt | 4 ++++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt index 50737dd37f..216188d49c 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/v2x/v2n/pnc/V2NIdentifyDrawer.kt @@ -13,7 +13,6 @@ import com.mogo.eagle.core.function.api.map.angle.* import com.mogo.eagle.core.function.call.autopilot.* import com.mogo.eagle.core.function.call.hmi.* import com.mogo.eagle.core.function.call.map.* -import com.mogo.eagle.core.function.call.msgbox.* import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxManager.saveMsgBox import com.mogo.eagle.core.utilcode.mogo.logger.* import com.mogo.eagle.core.utilcode.util.* @@ -46,11 +45,12 @@ internal object V2NIdentifyDrawer { return@Callback true } filtered.forEach { itx -> - AiRoadMarker.aiMakers.getOrPut(itx.uuid.toString()) { + val id = itx.uuid.toString() + AiRoadMarker.aiMakers.getOrPut(id) { AiRoadMarker().apply { val poiType = getPoiType(itx.type).poiType val polygon = itx.polygonList.map { Pair.create(it.longitude, it.latitude) } - marker(Marker(itx.strUuid, poiType, itx.longitude, itx.latitude, itx.heading, polygon, null, + marker(Marker(id, poiType, itx.longitude, itx.latitude, itx.heading, polygon, null, V2XRoadEventEntity().also { e -> e.poiType = poiType e.location = MarkerLocation().also { l -> 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 ee8a0c7372..310481a8e9 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 @@ -17,7 +17,7 @@ import java.util.concurrent.atomic.AtomicBoolean import java.util.concurrent.atomic.AtomicReference -data class MarkerWrapper(val id: String, val lon: Double, val lat: Double, val coordinateType: Int, var markers: ArrayList? = null, var lines: ArrayList? = null) { +data class MarkerWrapper(val id: String, val lon: Double, val lat: Double, val coordinateType: Int, var markers: ArrayList? = null, var lines: ArrayList? = null, var onRemoved:((id: String) -> Unit)? = null) { fun addLine(line: IMogoPolyline) { var ll = this.lines @@ -108,7 +108,7 @@ object MarkerRemoveManager { elapsed += delta } Log.d(TAG, "--- checkTask --- 5 ---:delta:$delta, elapsed:${elapsed}, id: ${marker.id}") - if (elapsed >= 200) { + if (elapsed >= 100) { var removeMarkerError = false marker.markers?.forEach { try { @@ -137,6 +137,7 @@ object MarkerRemoveManager { toRemove.remove() synchronized(elapsedDistances) { elapsedDistances.remove(marker) + marker.onRemoved?.invoke(marker.id) } } } else { 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 4bdc6f8bd3..44ad54851b 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 @@ -148,6 +148,9 @@ class AiRoadMarker { wrapper.addLine(line) } } + wrapper.onRemoved = { id -> + aiMakers.remove(id) + } MarkerRemoveManager.addMarker(wrapper) } @@ -168,6 +171,7 @@ class AiRoadMarker { removeLine() roadMarker.removeMarkers() handler.removeCallbacks(checkExpiredTask) + aiMakers.remove(marker.id) } fun receive() {