diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java index 5aa3bb966e..edb635f11a 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapNaviViewWrapper.java @@ -441,6 +441,10 @@ public class AMapNaviViewWrapper implements IMogoMapView, if ( checkAMapView() ) { MyLocationStyle style = mMapView.getMap().getMyLocationStyle(); style.showMyLocation( visible ); + if ( visible ) { + // 强制刷新一遍车标 + style.myLocationIcon( BitmapDescriptorFactory.fromResource( R.drawable.map_api_ic_current_location2 ) ); + } mMapView.getMap().setMyLocationStyle( style ); } } @@ -455,8 +459,6 @@ public class AMapNaviViewWrapper implements IMogoMapView, style.strokeColor( Color.TRANSPARENT ); style.strokeWidth( 0 ); style.radiusFillColor( Color.TRANSPARENT ); - style.myLocationIcon( - BitmapDescriptorFactory.fromResource( R.drawable.map_api_ic_current_location2 ) ); mMapView.getMap().setMyLocationStyle( style ); } } @@ -670,4 +672,11 @@ public class AMapNaviViewWrapper implements IMogoMapView, } } } + + @Override + public void forceRender() { + if ( checkAMapView() ) { + mMapView.getMap().runOnDrawFrame(); + } + } } diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java index 5b072919c5..5d653eefbc 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/uicontroller/AMapUIController.java @@ -194,4 +194,11 @@ public class AMapUIController implements IMogoMapUIController { mClient.showBounds( lonLats, bound ); } } + + @Override + public void forceRender() { + if ( mClient != null ) { + mClient.forceRender(); + } + } } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java index e3e74fe034..b424b85395 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/uicontroller/IMogoMapUIController.java @@ -155,4 +155,9 @@ public interface IMogoMapUIController { * @param bound 地图上可显示的范围 */ void showBounds( List< MogoLatLng > lonLats, Rect bound ); + + /** + * 强制刷新地图 + */ + void forceRender(); } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java index a805cf6d88..eba856a3f6 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapUIController.java @@ -187,4 +187,11 @@ public class MogoMapUIController implements IMogoMapUIController { mDelegate.showBounds( lonLats, bound ); } } + + @Override + public void forceRender() { + if ( mDelegate != null ) { + mDelegate.forceRender(); + } + } } diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java index 8ce7bd82cd..c4c8588691 100644 --- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java +++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/MogoServices.java @@ -61,22 +61,22 @@ public class MogoServices implements IMogoMapListener, IMogoNaviListener, IMogoStatusChangedListener, IMogoIntentListener { - - private MogoServices(){ + + private MogoServices() { // private constructor } - private static final class InstanceHolder{ - private static final MogoServices INSTANCE = new MogoServices(); + private static final class InstanceHolder { + private static final MogoServices INSTANCE = new MogoServices(); } - - public static MogoServices getInstance(){ - return InstanceHolder.INSTANCE; + + public static MogoServices getInstance() { + return InstanceHolder.INSTANCE; } - - private Object readResolve(){ - // 阻止反序列化,必须实现 Serializable 接口 - return InstanceHolder.INSTANCE; + + private Object readResolve() { + // 阻止反序列化,必须实现 Serializable 接口 + return InstanceHolder.INSTANCE; } private static final String TAG = "MogoServices"; @@ -622,12 +622,9 @@ public class MogoServices implements IMogoMapListener, return; } int status = intent.getIntExtra( MogoReceiver.PARAM_ADAS_STATUS, 0 ); - if (status == 1 ){ - MarkerServiceHandler.getMapUIController().setLockZoom(15); - }else{ - MarkerServiceHandler.getMapUIController().setLockZoom(16); - } + mUiController.setLockZoom( status == 1 ? 15 : 16 ); mStatusManager.setADASUIShow( ServiceConst.TYPE, status == 1 ); + mUiController.showMyLocation( true ); } else if ( Intent.ACTION_POWER_CONNECTED.equals( command ) ) { mStatusManager.setAccStatus( ServiceConst.TYPE, true ); } else if ( Intent.ACTION_POWER_DISCONNECTED.equals( command ) ) {