From b7403fed96d2dc538ec35b2f6e0bcc6c02bde652 Mon Sep 17 00:00:00 2001 From: renwj Date: Mon, 24 Oct 2022 14:07:36 +0800 Subject: [PATCH] =?UTF-8?q?[V2X][Road]=E4=BC=98=E5=8C=96=E8=B6=85=E6=97=B6?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=97=A5?= =?UTF-8?q?=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [V2X][Road]优化计算距离逻辑 --- .../scenario/scene/airoad/AiRoadMarker.kt | 39 ++++++++----------- 1 file changed, 17 insertions(+), 22 deletions(-) diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt index 4db46c81eb..118ce408ad 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/airoad/AiRoadMarker.kt @@ -67,15 +67,19 @@ object AiRoadMarker { private val onClearAllMarker = object : OnClearAllMarker { override fun onClearAllMarkers() { + Logger.d(TAG, "--- onClearAllMarkers ----") val marker = this@AiRoadMarker.marker.get() if (marker != null) { + Logger.d(TAG, "--- onClearAllMarkers ----2") unMarker(marker) } } override fun onClearAllMarkers(tag: String) { + Logger.d(TAG, "--- onClearAllMarkers ----: tag: $tag") val marker = this@AiRoadMarker.marker.get() if (marker != null) { + Logger.d(TAG, "--- onClearAllMarkers ----: tag: -- 1: $tag") unMarker(marker) } } @@ -179,12 +183,12 @@ object AiRoadMarker { try { val loc = arrayOf(location.longitude, location.latitude) carLocation.set(Triple(loc[0], loc[1], location.bearing.toDouble())) - val marker = marker.get() ?: return - val isOutOfRange = isOutOfRange(marker.poi_lon, marker.poi_lat, carLocation.get().first, carLocation.get().second, carLocation.get().third) - if (isOutOfRange) { - Logger.d(TAG, "--- onLocationChanged: isOutOfRange --- ") - unMarker(marker) - } +// val marker = marker.get() ?: return +// val isOutOfRange = isOutOfRange(marker.poi_lon, marker.poi_lat, carLocation.get().first, carLocation.get().second, carLocation.get().third) +// if (isOutOfRange) { +// Logger.d(TAG, "--- onLocationChanged: isOutOfRange --- ") +// unMarker(marker) +// } } catch (t: Throwable) { Logger.e(TAG, "error: ${t.message}") } @@ -327,20 +331,6 @@ object AiRoadMarker { handler.removeCallbacks(checkExpiredTask) } - private fun hideLine() { - val old = line.get() - if (old != null && !old.isDestroyed) { - old.isVisible = false - } - } - - private fun showLine() { - val old = line.get() - if (old != null && !old.isDestroyed) { - old.isVisible = true - } - } - private fun isOutOfRange(markerLon: Double, markerLat: Double, carLon: Double, carLat: Double, carAngle: Double): Boolean { return !isFrontOfCar(markerLon, markerLat, carLon, carLat, carAngle) } @@ -352,13 +342,18 @@ object AiRoadMarker { fun receive(marker: Marker) { val cur = this.marker.get() + Logger.d(TAG, "receive --- 1 ---") if (cur == marker) { + Logger.d(TAG, "receive --- 2 ---") val poi = this.marker.get() val car = this.carLocation.get() if (poi != null && car != null) { - val distance = DrivingDirectionUtils.distance(car.first, car.second, marker.poi_lon, marker.poi_lat) - if (distance < 300) { + val distance = DrivingDirectionUtils.distance(car.first, car.second, marker.poi_lon, marker.poi_lat) * 10000 + Logger.d(TAG, "receive --- 3 ---:car:[${car.first}, ${car.second}] -> poi:[${marker.poi_lon}, ${marker.poi_lat}] --> distance:$distance") + if (distance < 200) { checkExpired() + } else { + handler.removeCallbacks(checkExpiredTask) } } }