From 8b93fd267eac4ff6b120ef6e465adb8586f89076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Tue, 20 Apr 2021 11:06:10 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E8=BD=A6=E8=BE=86=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E8=A7=82=E5=AF=9F=E8=80=85=E8=AE=BE=E7=BD=AE=E4=B8=BA=E5=8D=95?= =?UTF-8?q?=E5=88=A9=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/listener/V2XLocationListener.java | 2 +- .../v2x/observer/CarLocationSubject.java | 25 +++++++++++++++---- .../v2x/overlay/V2XOptimalRouteOverlay.java | 2 +- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java index 8b1a112edc..3d2977423f 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/listener/V2XLocationListener.java @@ -69,7 +69,7 @@ public class V2XLocationListener private CarLocationSubject mCarLocationSubject; private V2XLocationListener() { - mCarLocationSubject = new CarLocationSubject(); + mCarLocationSubject = CarLocationSubject.getInstance(); // 注册最优路线的推荐观察者 mCarLocationSubject.registerObserver( V2XOptimalRouteObserver.TYPE, diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java index 1f238875ad..262ea1a2ae 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/observer/CarLocationSubject.java @@ -12,12 +12,27 @@ import java.util.Set; */ public class CarLocationSubject { + private static CarLocationSubject mCarLocationSubject; // 车辆位置 public MogoLocation carLocation; // 观察者集合 - private HashMap observers = new HashMap(); + private HashMap mObservers = new HashMap<>(); + private CarLocationSubject() { + } + + public static CarLocationSubject getInstance() { + if (mCarLocationSubject == null) { + synchronized (CarLocationSubject.class) { + if (mCarLocationSubject == null) { + mCarLocationSubject = new CarLocationSubject(); + } + } + } + return mCarLocationSubject; + } + /** * 设置新的车辆位置 * @@ -35,7 +50,7 @@ public class CarLocationSubject { * @param observer 新的观察者 */ public void registerObserver(String observerType, CarLocationObserver observer) { - observers.put(observerType, observer); + mObservers.put(observerType, observer); } /** @@ -44,16 +59,16 @@ public class CarLocationSubject { * @param observerType 观察者类型 */ public void removeObserver(String observerType) { - observers.remove(observerType); + mObservers.remove(observerType); } /** * 通知所有观察者更新 */ private void notifyAllObservers() { - Set keySet = observers.keySet(); + Set keySet = mObservers.keySet(); for (String s : keySet) { - CarLocationObserver observer = observers.get(s); + CarLocationObserver observer = mObservers.get(s); if (observer != null) { observer.update(carLocation); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java index f59752afe4..ae97a08626 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/overlay/V2XOptimalRouteOverlay.java @@ -57,7 +57,7 @@ public class V2XOptimalRouteOverlay { } } - mPolylineColors.addAll(ColorUtils.gradientAlpha("#002965ED", "#FF2965ED", mPolylinePointList.size()/2)); + mPolylineColors.addAll(ColorUtils.gradientAlpha("#002965ED", "#FF2965ED", mPolylinePointList.size() / 3)); // 替换路径集合 mPolylineOptions.points(mPolylinePointList);