From 9a5def9afa4f5384b5a31f57482a44e89d503801 Mon Sep 17 00:00:00 2001 From: donghongyu Date: Sat, 28 Jan 2023 19:44:46 +0800 Subject: [PATCH] =?UTF-8?q?[dev=5Farch=5Fopt=5F3.0]=20[Change]=20[=201?= =?UTF-8?q?=E3=80=81=E5=88=A0=E9=99=A4=E6=97=A7=E7=89=88=E5=9C=B0=E5=9B=BE?= =?UTF-8?q?=E6=9C=AC=E5=AE=9A=E4=BD=8D=E6=B3=A8=E5=86=8C=20]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: donghongyu --- .../core/function/impl/MogoMapService.java | 7 - .../function/api/map/IMogoMapService.java | 10 -- .../call/map/CallerMapUIServiceManager.kt | 6 - .../listener/IMogoHosListenerRegister.java | 14 -- .../map/listener/MogoHosListenerRegister.java | 55 ------ .../map/location/IMogoLocationClient.java | 44 ----- .../map/location/IMogoLocationListener.java | 19 --- .../IMogoLocationListenerRegister.java | 24 --- .../MogoLocationListenerRegister.java | 69 -------- .../java/com/mogo/map/AMapViewWrapper.java | 3 - .../com/mogo/map/CustomMapApiBuilder.java | 11 -- .../java/com/mogo/map/MogoLocationClient.java | 88 ---------- .../java/com/mogo/map/RoadCacheWrapper.java | 87 ---------- .../mogo/map/location/ALocationClient.java | 157 ------------------ 14 files changed, 594 deletions(-) delete mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java delete mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/listener/MogoHosListenerRegister.java delete mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java delete mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListener.java delete mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListenerRegister.java delete mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/location/MogoLocationListenerRegister.java delete mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/MogoLocationClient.java delete mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/RoadCacheWrapper.java delete mode 100644 libraries/mogo-map/src/main/java/com/mogo/map/location/ALocationClient.java diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java index e46132eb7d..472caaf9dd 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/impl/MogoMapService.java @@ -7,13 +7,11 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths; import com.mogo.eagle.core.function.api.map.IMogoMapService; import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService; import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager; -import com.mogo.map.MogoLocationClient; import com.mogo.map.MogoMapUIController; import com.mogo.map.MogoMarkerManager; import com.mogo.map.MogoOverlayManager; import com.mogo.map.location.GDLocationClient; import com.mogo.map.location.IMogoGDLocationClient; -import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.uicontroller.IMogoMapUIController; @@ -27,11 +25,6 @@ import com.mogo.map.uicontroller.IMogoMapUIController; @Route(path = MogoServicePaths.PATH_SERVICES_MAP) public class MogoMapService implements IMogoMapService { - @Override - public IMogoLocationClient getSingletonLocationClient(Context context) { - return MogoLocationClient.getInstance(context); - } - @Override public IMogoMarkerManager getMarkerManager(Context context) { return MogoMarkerManager.getInstance(context); diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java index 280efe3649..6b173f6006 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/IMogoMapService.java @@ -5,7 +5,6 @@ import android.content.Context; import com.alibaba.android.arouter.facade.template.IProvider; import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService; import com.mogo.map.location.IMogoGDLocationClient; -import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.overlay.IMogoOverlayManager; import com.mogo.map.uicontroller.IMogoMapUIController; @@ -17,15 +16,6 @@ import com.mogo.map.uicontroller.IMogoMapUIController; * 地图对外接口 */ public interface IMogoMapService extends IProvider { - - /** - * 获取定位服务实例,全局唯一 - * - * @param context - * @return - */ - IMogoLocationClient getSingletonLocationClient(Context context); - /** * marker 操作 * diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt index 7c3d83a391..7e015c3ec4 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapUIServiceManager.kt @@ -6,7 +6,6 @@ import com.mogo.eagle.core.function.api.map.IMogoMapService import com.mogo.eagle.core.function.api.map.marker.IMogoMarkerService import com.mogo.eagle.core.function.call.base.CallerBase import com.mogo.map.location.IMogoGDLocationClient -import com.mogo.map.location.IMogoLocationClient import com.mogo.map.marker.IMogoMarkerManager import com.mogo.map.overlay.IMogoOverlayManager import com.mogo.map.uicontroller.IMogoMapUIController @@ -23,11 +22,6 @@ object CallerMapUIServiceManager { return serviceProvider?.mapUIController } - //todo 改造,module-map中监听location定位回调,调用至地图更新,解除map-api对caller的依赖关系 - fun getSingletonLocationClient(context: Context): IMogoLocationClient? { - return serviceProvider?.getSingletonLocationClient(context) - } - fun getMarkerManager(context: Context): IMogoMarkerManager? { return serviceProvider?.getMarkerManager(context) } diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java deleted file mode 100644 index 318321b46a..0000000000 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/IMogoHosListenerRegister.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.mogo.map.listener; - -import com.mogo.map.marker.IMogoMarkerClickListenerRegister; - -/** - * @author congtaowang - * @since 2019-12-29 - *

- * 主模块需要注册监听的事件 - */ -public interface IMogoHosListenerRegister extends - IMogoMapListenerRegister, - IMogoMarkerClickListenerRegister { -} diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/MogoHosListenerRegister.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/MogoHosListenerRegister.java deleted file mode 100644 index 64079055df..0000000000 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/listener/MogoHosListenerRegister.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.mogo.map.listener; - -import com.mogo.map.marker.IMogoMarkerClickListener; -import com.mogo.map.marker.MogoMarkersHandler; - -/** - * @author congtaowang - * @since 2019-12-29 - *

- * 描述 - */ -public class MogoHosListenerRegister implements IMogoHosListenerRegister { - - private static volatile MogoHosListenerRegister sInstance; - - private MogoHosListenerRegister() { - } - - public static MogoHosListenerRegister getInstance() { - if ( sInstance == null ) { - synchronized ( MogoHosListenerRegister.class ) { - if ( sInstance == null ) { - sInstance = new MogoHosListenerRegister(); - } - } - } - return sInstance; - } - - public synchronized void release() { - sInstance = null; - } - - - @Override - public void registerHostMapListener(String tag, IMogoMapListener listener ) { - MogoMapListenerHandler.Companion.getMogoMapListenerHandler().registerHostMapListener(tag, listener ); - } - - @Override - public void unregisterHostMapListener(String tag) { - MogoMapListenerHandler.Companion.getMogoMapListenerHandler().unregisterHostMapListener(tag); - } - - @Override - public void registerMarkerClickListener( String tag,IMogoMarkerClickListener listener ) { - MogoMarkersHandler.Companion.getMogoMarkersHandler().registerMarkerClickListener(tag, listener ); - } - - @Override - public void unregisterMarkerClickListener(String tag) { - MogoMarkersHandler.Companion.getMogoMarkersHandler().unregisterMarkerClickListener(tag); - } - -} diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java deleted file mode 100644 index 61310341a2..0000000000 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationClient.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.mogo.map.location; - -import com.mogo.eagle.core.data.map.MogoLocation; - -/** - * @author congtaowang - * @since 2019-12-19 - *

- * 定位接口 - */ -public interface IMogoLocationClient extends IMogoLocationListenerRegister { - - /** - * 开始定位 - */ - void start(); - - /** - * 开始定位 - * - * @param interval 默认定位间隔 - */ - void start( long interval ); - - /** - * 停止定位 - */ - void stop(); - - /** - * 返回上一次有效定位 - * - * @return - */ - MogoLocation getLastKnowLocation(); - - void destroy(); - - /** - * 更正最新的位置 - * @param locationToUpdate - */ - void updateLocation(Object locationToUpdate); -} diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListener.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListener.java deleted file mode 100644 index 6d6372fba4..0000000000 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListener.java +++ /dev/null @@ -1,19 +0,0 @@ -package com.mogo.map.location; - -import com.mogo.eagle.core.data.map.MogoLocation; - -/** - * @author congtaowang - * @since 2019-12-19 - *

- * 定位回调 - */ -public interface IMogoLocationListener { - - /** - * 定位发生改变 - * - * @param location 新定位点 - */ - void onLocationChanged( MogoLocation location ); -} diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListenerRegister.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListenerRegister.java deleted file mode 100644 index 3fd36903af..0000000000 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/IMogoLocationListenerRegister.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.mogo.map.location; - -/** - * @author congtaowang - * @since 2019-12-24 - *

- * 地图监听注册管理 - */ -public interface IMogoLocationListenerRegister { - - /** - * 注册定位回调 - * - * @param listener - */ - void addLocationListener( IMogoLocationListener listener ); - - /** - * 注销定位回调 - * - * @param listener - */ - void removeLocationListener( IMogoLocationListener listener ); -} diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/MogoLocationListenerRegister.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/location/MogoLocationListenerRegister.java deleted file mode 100644 index 87820f9b83..0000000000 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/location/MogoLocationListenerRegister.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.mogo.map.location; - -import java.util.HashSet; -import java.util.Set; - -/** - * @author congtaowang - * @since 2019-12-24 - *

- * 地图监听注册管理 - */ -public class MogoLocationListenerRegister implements IMogoLocationListenerRegister { - - private static volatile MogoLocationListenerRegister sInstance; - - private MogoLocationListenerRegister() { - } - - public static MogoLocationListenerRegister getInstance() { - if ( sInstance == null ) { - synchronized ( MogoLocationListenerRegister.class ) { - if ( sInstance == null ) { - sInstance = new MogoLocationListenerRegister(); - } - } - } - return sInstance; - } - - public synchronized void release() { - sInstance = null; - } - - private final Set< IMogoLocationListener > sListeners = new HashSet<>( 10 ); - - /** - * 注册定位回调 - * - * @param listener - */ - @Override - public void addLocationListener( IMogoLocationListener listener ) { - if ( listener == null ) { - return; - } - synchronized ( sListeners ) { - sListeners.add( listener ); - } - } - - /** - * 注销定位回调 - * - * @param listener - */ - @Override - public void removeLocationListener( IMogoLocationListener listener ) { - if ( listener == null ) { - return; - } - synchronized ( sListeners ) { - sListeners.remove( listener ); - } - } - - public Set< IMogoLocationListener > getListeners() { - return sListeners; - } -} diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java index 73b81ebdd7..681c4241e8 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java @@ -38,7 +38,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapDevaListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager; -import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.mogo.toast.TipToast; @@ -981,7 +980,6 @@ public class AMapViewWrapper implements IMogoMapView, bean.setLat(lat); // 使用外部定位数据修改自车位置 mMapView.getLocationClient().updateRTKAutoPilotLocation(bean); - CallerMapUIServiceManager.INSTANCE.getSingletonLocationClient(getContext()).updateLocation(bean); CallerMapDataCollectorManager.INSTANCE.setIsInit(); } @@ -1121,7 +1119,6 @@ public class AMapViewWrapper implements IMogoMapView, locationClient.updateLocation(lonLatPoint);//更新新自动驾驶RTK相关数据 - CallerMapUIServiceManager.INSTANCE.getSingletonLocationClient(getContext()).updateLocation(lonLatPoint); CallerMapDataCollectorManager.INSTANCE.setIsInit(); } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/CustomMapApiBuilder.java b/libraries/mogo-map/src/main/java/com/mogo/map/CustomMapApiBuilder.java index 0da12910e2..d745f286fb 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/CustomMapApiBuilder.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/CustomMapApiBuilder.java @@ -1,10 +1,6 @@ package com.mogo.map; -import android.content.Context; - import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.map.location.ALocationClient; -import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.uicontroller.AMapUIController; import com.mogo.map.uicontroller.IMogoMapUIController; @@ -32,17 +28,10 @@ public class CustomMapApiBuilder { return sApiBuilder; } - public IMogoLocationClient getLocationClient(Context context) { - return new ALocationClient(context); - } - public IMogoMapUIController getMapUIController() { return AMapUIController.getInstance(); } - public static IMogoLocationClient getLocationClientDelegate(Context context) { - return getApiBuilder().getLocationClient(context); - } public static IMogoMapUIController getMapUIControllerDelegate() { return getApiBuilder().getMapUIController(); diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoLocationClient.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoLocationClient.java deleted file mode 100644 index 5d9fbc2d9a..0000000000 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoLocationClient.java +++ /dev/null @@ -1,88 +0,0 @@ -package com.mogo.map; - -import android.content.Context; - -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.map.location.IMogoLocationClient; -import com.mogo.map.location.IMogoLocationListener; -import com.mogo.map.location.MogoLocationListenerRegister; - -/** - * @author congtaowang - * @since 2019-12-19 - *

- */ -public class MogoLocationClient implements IMogoLocationClient { - - private static volatile MogoLocationClient sInstance; - - public MogoLocationClient( Context context ) { - mDelegate = CustomMapApiBuilder.getLocationClientDelegate( context ); - } - - public static MogoLocationClient getInstance( Context context ) { - if ( sInstance == null ) { - synchronized ( MogoLocationClient.class ) { - if ( sInstance == null ) { - sInstance = new MogoLocationClient( context ); - } - } - } - return sInstance; - } - - private IMogoLocationClient mDelegate; - - @Override - public void start() { - if ( mDelegate != null ) { - mDelegate.start(); - } - } - - @Override - public void start( long interval ) { - if ( mDelegate != null ) { - mDelegate.start( interval ); - } - } - - @Override - public void stop() { - if ( mDelegate != null ) { - mDelegate.stop(); - } - } - - @Override - public void addLocationListener( IMogoLocationListener listener ) { - MogoLocationListenerRegister.getInstance().addLocationListener( listener ); - } - - @Override - public void removeLocationListener( IMogoLocationListener listener ) { - MogoLocationListenerRegister.getInstance().removeLocationListener( listener ); - } - - @Override - public MogoLocation getLastKnowLocation() { - if ( mDelegate != null ) { - return mDelegate.getLastKnowLocation(); - } - return null; - } - - @Override - public void destroy() { - if ( mDelegate != null ) { - mDelegate.destroy(); - } - } - - @Override - public void updateLocation(Object locationToUpdate) { - if (mDelegate != null) { - mDelegate.updateLocation(locationToUpdate); - } - } -} diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/RoadCacheWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/RoadCacheWrapper.java deleted file mode 100644 index 4f3a9c2497..0000000000 --- a/libraries/mogo-map/src/main/java/com/mogo/map/RoadCacheWrapper.java +++ /dev/null @@ -1,87 +0,0 @@ -package com.mogo.map; - -import com.zhidaoauto.map.sdk.open.query.LonLatPoint; - -import java.util.List; - -/** - * 道路数据缓存 - * - * @author tongchenfei - */ -public class RoadCacheWrapper { - private List road; - private double lastDistanceDiff; - private int roadLength = -1; - - private float laneWidth = -1; - - public RoadCacheWrapper(List road) { - setRoad(road); - } - - public List getRoad() { - return road; - } - - public void setRoad(List road) { - this.road = road; - if(road!=null) { - roadLength = road.size(); - } - } - - public double getLastDistanceDiff() { - return lastDistanceDiff; - } - - public void setLastDistanceDiff(double lastDistanceDiff) { - this.lastDistanceDiff = lastDistanceDiff; - } - - public double getLastLat(){ - if (roadLength != -1) { - return road.get(roadLength - 1).getLatitude(); - } - return 0; - } - - public double getLastLon(){ - if (roadLength != -1) { - return road.get(roadLength - 1).getLongitude(); - } - return 0; - } - - public float getLaneWidth() { - return laneWidth; - } - - public void setLaneWidth(float laneWidth) { - this.laneWidth = laneWidth; - } - - public boolean inCache(double lon, double lat) { - if (roadLength > 0) { - LonLatPoint start = road.get(0); - LonLatPoint end = road.get(roadLength - 1); - boolean latInRoad = false; - boolean lonInRoad = false; - if (start.getLatitude() > end.getLatitude()) { - latInRoad = lat <= start.getLatitude() && lat >= end.getLatitude(); - }else{ - latInRoad = lat >= start.getLatitude() && lat <= end.getLatitude(); - } - - if (start.getLongitude() > end.getLongitude()) { - lonInRoad = lon <= start.getLongitude() && lon >= end.getLongitude(); - }else{ - lonInRoad = lon >= start.getLongitude() && lon <= end.getLongitude(); - } - - return latInRoad && lonInRoad; - } - return false; - } - -} diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/location/ALocationClient.java b/libraries/mogo-map/src/main/java/com/mogo/map/location/ALocationClient.java deleted file mode 100644 index 7fdaf67ec1..0000000000 --- a/libraries/mogo-map/src/main/java/com/mogo/map/location/ALocationClient.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.mogo.map.location; - -import android.content.Context; -import android.os.Trace; - -import com.mogo.eagle.core.data.map.MogoLocation; -import com.mogo.eagle.core.function.call.map.CallerMapLocationListenerManager; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; -import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.utils.ObjectUtils; -import com.zhidaoauto.map.sdk.open.location.LocationClient; -import com.zhidaoauto.map.sdk.open.location.LocationListener; -import com.zhidaoauto.map.sdk.open.location.RTKAutopilotLocationBean; -import com.zhidaoauto.map.sdk.open.query.LonLatPoint; - -import org.jetbrains.annotations.NotNull; - -import java.util.Iterator; -import java.util.Set; - -/** - * @author congtaowang - * @since 2019-12-19 - *

- * 自研定位 - */ -public class ALocationClient implements IMogoLocationClient { - - private static final String TAG = "ALocationClient"; - - private MogoLocation mLastLocation; - private final LocationListener mListener = new InternalLocationListener(); - - private boolean mIsDestroyed = false; - - public ALocationClient( Context context ) { - mClient = new LocationClient( context ); - mClient.registerListener( mListener ); - mLastLocation = ObjectUtils.fromLocation( mClient.getLastKnownMogoLocation() ); - if ( mLastLocation == null ) { - mLastLocation = new MogoLocation(); - } - } - - private LocationClient mClient; - - @Override - public void start() { - start( 2_000L ); - } - - @Override - public void start( long interval ) { - if ( mIsDestroyed ) { - destroyWarming(); - return; - } - if ( mClient != null ) { - mClient.start(); - } - } - - @Override - public void stop() { - if ( mIsDestroyed ) { - destroyWarming(); - return; - } - if ( mClient != null && mClient.isAGpsStarted() ) { - mClient.stop(); - } - } - - @Override - public void addLocationListener( IMogoLocationListener listener ) { - // do not impl. - } - - @Override - public void removeLocationListener( IMogoLocationListener listener ) { - // do not impl. - } - - @Override - public MogoLocation getLastKnowLocation() { - if ( mIsDestroyed ) { - destroyWarming(); - return null; - } - return mLastLocation; - } - - @Override - public synchronized void destroy() { - mIsDestroyed = true; - if ( mClient != null ) { - mClient.unRegisterListener( mListener ); - mClient.destory(); - } - mClient = null; - mLastLocation = null; - } - - private class InternalLocationListener implements LocationListener { - - @Override - public void onLocationChanged( @NotNull com.zhidaoauto.map.sdk.open.location.MogoLocation location ) { - if ( mIsDestroyed ) { - destroyWarming(); - return; - } - if ( location == null || - location.getLat() == 0.0D || - location.getLon() == 0.0D ) { - return; - } - Trace.beginSection( "timer.onLocationChanged" ); - mLastLocation = ObjectUtils.fromLocation( location ); - UiThreadHandler.post(() -> CallerMapLocationListenerManager.INSTANCE.invokeMapLocationChangeListener(mLastLocation, 0, false)); - - Set< IMogoLocationListener > listeners = MogoLocationListenerRegister.getInstance().getListeners(); - synchronized ( listeners ) { - Iterator< IMogoLocationListener > listenerIterator = listeners.iterator(); - while ( listenerIterator.hasNext() ) { - listenerIterator.next().onLocationChanged( mLastLocation.clone() ); - } - } - Trace.endSection(); - } - } - - private void destroyWarming() { - CallerLogger.INSTANCE.w( TAG, "location client has destroyed." ); - } - - @Override - public void updateLocation(Object locationToUpdate) { - if (locationToUpdate == null) { - return; - } - if (locationToUpdate instanceof MogoLocation) { - return; - } -// if (locationToUpdate instanceof RTKAutopilotLocationBean) { -// RTKAutopilotLocationBean current = (RTKAutopilotLocationBean) locationToUpdate; -// if (mClient != null) { -// mClient.updateRTKAutoPilotLocation(current); -// } -// } - if (locationToUpdate instanceof com.zhidaoauto.map.sdk.open.query.LonLatPoint) { - LonLatPoint current = (LonLatPoint) locationToUpdate; - if (mClient != null) { - mClient.updateLocation(current); - } - } - } -}