From e97279502287945dd018de85aa945716cff9813a Mon Sep 17 00:00:00 2001 From: aibingbing Date: Wed, 26 Jun 2024 18:44:52 +0800 Subject: [PATCH] =?UTF-8?q?[646]feat:=20=E5=A2=9E=E5=8A=A0=E5=85=A8?= =?UTF-8?q?=E5=B1=80=E8=BD=A8=E8=BF=B9=E8=B0=83=E7=94=A8=E7=9A=84=E5=9F=8B?= =?UTF-8?q?=E7=82=B9=EF=BC=8C=E4=BF=AE=E5=A4=8D=E7=AC=AC=E4=B8=80=E6=AC=A1?= =?UTF-8?q?=E8=B0=83=E7=94=A8=E6=97=B6=E5=AE=9E=E9=99=85=E4=B8=8D=E7=BB=98?= =?UTF-8?q?=E5=88=B6=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=97=A5=E5=BF=97=E6=89=93=E5=8D=B0=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../MogoTrajectoryOverlayManager.java | 71 ++++++++++--------- .../MogoTrajectoryOverlayProvider.kt | 10 ++- .../TrajectoryOverlayDrawer.java | 14 ++-- .../CallerMapGlobalTrajectoryDrawManager.kt | 2 +- 4 files changed, 52 insertions(+), 45 deletions(-) diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayManager.java index 932d8a5a26..e247f6cf9e 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayManager.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayManager.java @@ -1,9 +1,11 @@ package com.mogo.eagle.core.function.business.trajectoryoverlay; +import android.util.Log; import android.util.Pair; import androidx.annotation.Nullable; +import com.mogo.commons.utils.MogoAnalyticUtils; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener; import com.mogo.eagle.core.function.api.autopilot.IMoGoPlanningRottingListener; @@ -11,19 +13,21 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84ListenerManager; import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; +import com.mogo.eagle.core.utilcode.util.ThreadUtils; -import java.util.LinkedList; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import mogo.telematics.pad.MessagePad; -public class MogoTrajectoryOverlayManager implements - IMoGoPlanningRottingListener, - IMoGoChassisLocationGCJ02Listener { +public class MogoTrajectoryOverlayManager implements IMoGoPlanningRottingListener, IMoGoChassisLocationGCJ02Listener { private static volatile MogoTrajectoryOverlayManager sInstance; private static final String TAG = "MogoTrajectoryOverlayManager"; + private static final String ANALYTICS_KEY = "mogo_map_trajectory_overlay_manager"; - private final LinkedList> queue = new LinkedList<>(); + private final List queue = new ArrayList<>(); private MogoTrajectoryOverlayManager() { } @@ -38,6 +42,8 @@ public class MogoTrajectoryOverlayManager implements synchronized (MogoTrajectoryOverlayManager.class) { if (sInstance == null) { sInstance = new MogoTrajectoryOverlayManager(); + //需要先初始化,否则第一次调用drawTrajectoryOverlayOnce()会因为mRenderHandler=null实际不会绘制 + TrajectoryOverlayDrawer.getInstance(); } } } @@ -46,53 +52,52 @@ public class MogoTrajectoryOverlayManager implements @Override public void onAutopilotRotting(@Nullable MessagePad.GlobalPathResp globalPathResp) { - CallerLogger.i(TAG, "onAutopilotRotting size=" + globalPathResp.getWayPointsList().size()); if (globalPathResp != null) { + CallerLogger.i(TAG, "onAutopilotRotting size=" + globalPathResp.getWayPointsList().size()); synchronized (queue) { queue.clear(); - queue.offer(globalPathResp.getWayPointsList()); + queue.addAll(globalPathResp.getWayPointsList()); } + trackEvent("onAutopilotRotting", "接收到全局轨迹规划, size=" + globalPathResp.getWayPointsList().size()); } } @Override public void onChassisLocationGCJ02(@Nullable MogoLocation gnssInfo) { - if (gnssInfo == null) { - return; - } -// int autoPilotState = CallerAutoPilotStatusListenerManager.INSTANCE.getState(); -// boolean isArriveAtStation = CallerAutoPilotStatusListenerManager.INSTANCE.isArriveAtStation(); -// Log.d(TAG, "-- onChassisLocationGCJ02 -- 1 ---" + ":auto-mode:" + autoPilotState + ", isArriveAtStation: " + isArriveAtStation); -// if (isArriveAtStation && autoPilotState != 2) { -// RouteOverlayDrawer.getInstance().clearMogoRouteOverlay(); -// return; -// } -// Log.d(TAG, "-- onChassisLocationGCJ02 -- 2 ---" + "auto-mode:" + autoPilotState + ", isDemoMode:" + FunctionBuildConfig.isDemoMode + ", force:" + FunctionBuildConfig.isForceDrawAutopilotTrajectoryByDebugSettingView); -// boolean force = FunctionBuildConfig.isForceDrawAutopilotTrajectoryByDebugSettingView || FunctionBuildConfig.isDemoMode && FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData; -// if (!force && autoPilotState != 2) { -// RouteOverlayDrawer.getInstance().clearMogoRouteOverlay(); -// return; -// } -// Log.d(TAG, "-- onChassisLocationGCJ02 -- 3 ---"); } public Pair drawTrajectoryOverlayOnce() { - Pair result = new Pair(false, "全局轨迹未就绪或为空"); + CallerLogger.i(TAG, "drawTrajectoryOverlayOnce"); + trackEvent("drawTrajectoryOverlayOnce", "开始执行"); synchronized (queue) { - if (!queue.isEmpty()) { - List items = queue.pollLast(); - if (items != null && !items.isEmpty()) { - double heading = CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getHeading(); - TrajectoryOverlayDrawer.getInstance().drawTrajectoryList(items, heading); - return new Pair(true, "success"); - } + if (queue != null && !queue.isEmpty()) { + double heading = CallerChassisLocationWGS84ListenerManager.INSTANCE.getChassisLocationWGS84().getHeading(); + TrajectoryOverlayDrawer.getInstance().drawTrajectoryList(queue, heading); + trackEvent("drawTrajectoryOverlayOnce", "执行结果(result=true, msg=success)"); + return new Pair(true, "success"); } - return result; + trackEvent("drawTrajectoryOverlayOnce", "执行结果(result=false, msg=全局轨迹未就绪或为空)"); + return new Pair(false, "全局轨迹未就绪或为空"); } } public void clearTrajectoryOverlay() { + CallerLogger.i(TAG, "clearTrajectoryOverlay"); + trackEvent("clearTrajectoryOverlay", "开始执行"); TrajectoryOverlayDrawer.getInstance().clearMogoTrajectoryOverlay(); + trackEvent("clearTrajectoryOverlay", "success"); + } + + public void trackEvent(String eventKey, String eventValue) { + ThreadUtils.getIoPool().submit(new Runnable() { + @Override + public void run() { + Log.i(TAG, eventKey + "-->" + eventValue); + Map map = new HashMap(); + map.put(eventKey, eventValue); + MogoAnalyticUtils.INSTANCE.track(ANALYTICS_KEY, map); + } + }); } } diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayProvider.kt index b57ec0b25c..f89111622c 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayProvider.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/MogoTrajectoryOverlayProvider.kt @@ -21,17 +21,23 @@ class MogoTrajectoryOverlayProvider : IMoGoGlobalTrajectoryDrawListener { } override fun hasDrawnGlobalTrajectory(): Boolean { - return hasDrawn.get() + val result = hasDrawn.get() + CallerLogger.i(TAG, "hasDrawnGlobalTrajectory --> hasDrawn=$result") + return result } override fun drawGlobalTrajectory(): Pair { val result = MogoTrajectoryOverlayManager.getInstance().drawTrajectoryOverlayOnce() - hasDrawn.set(result.first) + if (result.first) { + hasDrawn.set(result.first) + } + CallerLogger.i(TAG, "drawGlobalTrajectory --> hasDrawn=$hasDrawn, result.first=${result.first}, result.second=${result.second}") return Pair(result.first, result.second) } override fun clearGlobalTrajectory() { MogoTrajectoryOverlayManager.getInstance().clearTrajectoryOverlay() hasDrawn.set(false) + CallerLogger.i(TAG, "clearGlobalTrajectory --> hasDrawn=$hasDrawn") } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/TrajectoryOverlayDrawer.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/TrajectoryOverlayDrawer.java index 2c06361935..7f7104eab5 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/TrajectoryOverlayDrawer.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/business/trajectoryoverlay/TrajectoryOverlayDrawer.java @@ -79,7 +79,7 @@ public class TrajectoryOverlayDrawer { if (mRenderTask != null) { mRenderHandler.removeCallbacks(mRenderTask); } - mogoOverlayManager.removeAllLinesInLevel(Level.TRAJECTORY_LINE); + mogoOverlayManager.hideAllLinesInLevel(Level.TRAJECTORY_LINE); } } @@ -125,14 +125,10 @@ public class TrajectoryOverlayDrawer { } else { if (colors == null) { ArrayList> temps = new ArrayList<>(); -// temps.add(new Pair<>(0, 51)); -// temps.add(new Pair<>(10, 102)); -// temps.add(new Pair<>(30, 51)); -// temps.add(new Pair<>(100, 0)); - temps.add(new Pair<>(0, 100)); - temps.add(new Pair<>(10, 100)); - temps.add(new Pair<>(30, 100)); - temps.add(new Pair<>(100, 100)); + temps.add(new Pair<>(0, 70)); + temps.add(new Pair<>(2, 100)); + temps.add(new Pair<>(98, 100)); + temps.add(new Pair<>(100, 70)); List alphas = MapTools.INSTANCE.getColorAlpha(temps); if (alphas != null && !alphas.isEmpty()) { colors = new ArrayList<>(); diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapGlobalTrajectoryDrawManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapGlobalTrajectoryDrawManager.kt index 41c29ee859..523dea5f66 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapGlobalTrajectoryDrawManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapGlobalTrajectoryDrawManager.kt @@ -27,7 +27,7 @@ object CallerMapGlobalTrajectoryDrawManager { } /** - * 在高精地图绘制全局规划 + * 在高精地图绘制全局轨迹 * @return boolean-是否绘制成功, string-未绘制原因 */ fun drawGlobalTrajectory(): Pair {