From 314a0899d605dee876cb876b43a0b1727e8ef67b Mon Sep 17 00:00:00 2001 From: renwj Date: Wed, 26 Oct 2022 11:54:11 +0800 Subject: [PATCH] =?UTF-8?q?[V2X][Road]=E6=96=BD=E5=B7=A5=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=9B=B4=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scene/road/V2XAiRoadEventMarker.kt | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XAiRoadEventMarker.kt b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XAiRoadEventMarker.kt index fc497bc807..4689c0d8d7 100644 --- a/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XAiRoadEventMarker.kt +++ b/core/function-impl/mogo-core-function-v2x/src/main/java/com/mogo/eagle/core/function/v2x/events/scenario/scene/road/V2XAiRoadEventMarker.kt @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.v2x.events.scenario.scene.road +import android.graphics.* import android.util.* import com.mogo.cloud.commons.utils.* import com.mogo.eagle.core.data.map.* @@ -14,6 +15,7 @@ import com.mogo.module.common.utils.* import java.util.* import java.util.concurrent.atomic.* import kotlin.Pair +import kotlin.collections.ArrayList object V2XAiRoadEventMarker { @@ -29,6 +31,8 @@ object V2XAiRoadEventMarker { private val distance = AtomicInteger(0) + private val overlayManager by lazy { MogoOverlayManager.getInstance() } + fun drawMarkers(entity: V2XRoadEventEntity): Pair?>? { removeMarkers(current.get()) timerTask.get()?.cancel() @@ -69,7 +73,32 @@ object V2XAiRoadEventMarker { v2xMarker()?.drawableAlarmPOI(context(), entity, null) val l2 = entity.noveltyInfo?.location ?: return null v2xLocation.set(MogoLocation().also { it.longitude = l2.lon; it.latitude = l2.lat; it.bearing = l2.angle.toFloat() }) - current.set(Pair(null, markers)) + + val options = MogoPolylineOptions() + val colors = ArrayList() + colors.add(Color.argb(204, 237, 172, 21)) + colors.add(Color.argb(0, 255, 255, 255)) + options.colorValues(colors) + val points = ArrayList() + + for (p in polygons) { + points.add(MogoLatLng(p.second, p.first)) + } + if (points.size > 2) { + points.add(points[0]) + } + options.points(points); + options.useGradient(true) + options.useFacade(true) + options.setGps(false) + options.width(5f) + options.zIndex(75000f) + options.maxIndex(800000f) + val line = overlayManager.addPolyline(options) + current.set(Pair(line, markers)) + if (line != null) { + line.isVisible = true + } } } }