From 10b5933c03f422a2b9b9724fdc39e8b62c4ce4e2 Mon Sep 17 00:00:00 2001 From: zhongchao Date: Thu, 17 Aug 2023 16:41:21 +0800 Subject: [PATCH] [base_3.4.0-map-sdk] --- OCH/mogo-och-common-module/build.gradle | 2 - .../com/mogo/och/taxi/ui/TaxiFragment.java | 6 - .../mogo/launcher/startup/ConfigStartUp.kt | 1 + .../eagle/core/function/view/MapBizView.kt | 4 +- .../function/api/map/IMogoMapService.java | 3 - .../listener/IMoGoMapStyleChangeListener.kt | 15 -- .../api/map/smp/IMogoSmallMapProvider.java | 42 --- .../call/map/CallerMapStyleListenerManager.kt | 47 ---- .../call/map/CallerMapUIServiceManager.kt | 15 +- .../map/sdk/open/abs/OnMapLoadedListener.kt | 2 +- .../src/main/java/com/mogo/map/IMogoData.kt | 28 ++ .../src/main/java/com/mogo/map/MogoData.kt | 13 + .../src/main/java/com/mogo/map/MogoMap.java | 1 + .../uicontroller/IMogoMapUIController.java | 51 ---- .../java/com/mogo/map/AMapViewWrapper.java | 242 ++++++++---------- .../main/java/com/mogo/map/AMapWrapper.java | 12 +- .../main/java/com/mogo/map/MapDataWrapper.kt | 98 ++++--- .../com/mogo/map/MogoMapUIController.java | 49 ---- .../map/uicontroller/AMapUIController.java | 45 ---- 19 files changed, 225 insertions(+), 451 deletions(-) delete mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/listener/IMoGoMapStyleChangeListener.kt delete mode 100644 core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/map/smp/IMogoSmallMapProvider.java delete mode 100644 core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapStyleListenerManager.kt create mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoData.kt create mode 100644 libraries/mogo-map-api/src/main/java/com/mogo/map/MogoData.kt diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle index 84eb21a653..34f152a409 100644 --- a/OCH/mogo-och-common-module/build.gradle +++ b/OCH/mogo-och-common-module/build.gradle @@ -62,13 +62,11 @@ dependencies { api project(":OCH:mogo-och-data") if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { - api rootProject.ext.dependencies.mogoutils api rootProject.ext.dependencies.mogocommons api rootProject.ext.dependencies.mogo_core_function_call api rootProject.ext.dependencies.mogo_core_function_hmi api rootProject.ext.dependencies.mogo_core_function_map }else { - api project(":core:mogo-core-utils") api project(":foudations:mogo-commons") api project(':core:mogo-core-function-call') api project(':core:function-impl:mogo-core-function-hmi') diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java index 6039593936..1f5d948c99 100644 --- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java +++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java @@ -21,7 +21,6 @@ import com.mogo.eagle.core.data.temp.EventLogout; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.common.module.biz.provider.LoginService; -import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.taxi.R; import com.mogo.och.taxi.constant.TaxiOrderStatusEnum; import com.mogo.och.taxi.bean.OrderQueryRespBean; @@ -106,7 +105,6 @@ public class TaxiFragment extends BaseTaxiTabFragment coordinates); - - /** - * 清除路径线 - */ - void clearPolyline(); - - /** - * 查询全揽模式下V2X事件 - */ - default void startQueryV2XEvents() {} - - /** - * 清除V2X事件 - */ - default void clearV2XMarkers() {} -} diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapStyleListenerManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapStyleListenerManager.kt deleted file mode 100644 index af6f9f502b..0000000000 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/map/CallerMapStyleListenerManager.kt +++ /dev/null @@ -1,47 +0,0 @@ -package com.mogo.eagle.core.function.call.map - -import com.mogo.eagle.core.function.api.map.listener.IMoGoMapStyleChangeListener -import com.mogo.eagle.core.function.call.base.CallerBase - -/** - * @author xiaoyuzhou - * @date 2021/9/30 5:48 下午 - * 地图 样式改变 监听管理 - */ -object CallerMapStyleListenerManager : CallerBase() { - - // 记录地图样式 - private var mMapStyleMode = 0 - - /** - * 返回当前的地图皮肤 - */ - fun getMapStyleMode(): Int { - return mMapStyleMode - } - - override fun doSomeAfterAddListener(tag: String, listener: IMoGoMapStyleChangeListener) { - listener.onMapStyleModeChange(mMapStyleMode) - } - - /** - * 触发 地图样式改变 监听 - */ - fun invokeMapStyleChange() { - invokeMapStyleChange(mMapStyleMode) - } - - /** - * 触发 地图样式改变 监听 - * @param mapStyleMode 选中状态 - */ - fun invokeMapStyleChange(mapStyleMode: Int) { - mMapStyleMode = mapStyleMode - M_LISTENERS.forEach { - val tag = it.key - val listener = it.value - listener.onMapStyleModeChange(mMapStyleMode) - } - } - -} \ No newline at end of file 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 3783e4d203..799dc7cb1d 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 @@ -34,6 +34,14 @@ object CallerMapUIServiceManager { return serviceProvider?.mapUIController?.isCityDataCached ?: false } + fun cancelDownloadCacheData() { + serviceProvider?.mapUIController?.cancelDownloadCacheData() + } + + fun getCityCode(): String? { + return serviceProvider?.mapUIController?.cityCode + } + fun getOverlayManager(): IMoGoOverlayManager? { return serviceProvider?.overlayManager } @@ -42,11 +50,4 @@ object CallerMapUIServiceManager { return serviceProvider?.getGDLocationServer(context) } - fun cancelDownloadCacheData() { - serviceProvider?.mapUIController?.cancelDownloadCacheData() - } - - fun getCityCode(): String? { - return serviceProvider?.mapUIController?.cityCode - } } \ No newline at end of file diff --git a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapLoadedListener.kt b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapLoadedListener.kt index 1d591ce038..4ddcdc9376 100644 --- a/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapLoadedListener.kt +++ b/libraries/mapmodule/src/main/java/com/zhidaoauto/map/sdk/open/abs/OnMapLoadedListener.kt @@ -3,5 +3,5 @@ package com.zhidaoauto.map.sdk.open.abs interface OnMapLoadedListener { fun onMapInit() fun onMapLoaded() - fun onRoadLoaded(roadInfo:String?) + fun onRoadLoaded(roadInfo:String?){} } \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoData.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoData.kt new file mode 100644 index 0000000000..aa13861929 --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoData.kt @@ -0,0 +1,28 @@ +package com.mogo.map + +import com.mogo.map.center.CenterLine + +interface IMogoData { + + fun setDebugMode(debugMode: Boolean) + + /** + * 获取行驶方向一定长度的中心线 + * + * @param lon 经度 + * @param lat 纬度 + * @param angle 航向角 + * @param distance 获取车道中心线的长度,> 0: 行驶方向前方距离, <0 行驶方向后方距离 + * @return 中心线相关数据 + */ + fun getCenterLineRangeInfo(lon: Double, lat: Double, angle: Float, distance: Float): CenterLine? + + + fun getCenterLineRangeInfo( + lon: Double, + lat: Double, + angle: Float, + distance: Float, + call: ((Int, com.mogo.map.center.CenterLine?) -> Unit) + ) +} \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoData.kt b/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoData.kt new file mode 100644 index 0000000000..b049989dd6 --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoData.kt @@ -0,0 +1,13 @@ +package com.mogo.map + +class MogoData { + + companion object{ + + val mogoData by lazy(LazyThreadSafetyMode.SYNCHRONIZED){ + MogoData() + } + } + + +} \ No newline at end of file diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoMap.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoMap.java index 7be9459918..1fbcb6f928 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoMap.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoMap.java @@ -31,6 +31,7 @@ public class MogoMap { return sInstance; } + //todo 多实例 public void init( Context context, IMogoMap map ) { this.mContext = context; this.mMap = map; 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 806c12dd4b..f72d5b3fc9 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 @@ -38,13 +38,6 @@ public interface IMogoMapUIController { */ void changeZoom2(float zoom); - /** - * 设置地图是否是Debug模式 - * - * @param debugMode 是否开启Debug模式 - */ - void setDebugMode(Boolean debugMode); - /** * 进入VR 模式 * @@ -241,36 +234,6 @@ public interface IMogoMapUIController { */ void changeCurrentIcon(@RawRes int iconId); - /** - * 获取瓦片id - * - * @param lon 经度 - * @param lat 纬度 - * @return 瓦片id - */ - long getTileId(double lon, double lat); - - - /** - * 获取限速 - * - * @param lon - * @param lat - * @param angle - * @return - */ - int getLimitSpeed(double lon, double lat, float angle); - - /** - * 获取车道中心线信息 - * - * @param lon - * @param lat - * @param angle - * @return - */ - CenterLine getCenterLineInfo(double lon, double lat, float angle); - /** * 自研地图是否匹配道路 * @@ -309,20 +272,6 @@ public interface IMogoMapUIController { */ void setMapDAngle(float angle); - /** - * 获取行车方向 - * - * @return - */ - float getAngle(double startLon, double startLat, double endLon, double endLat); - - /** - * 获取当前道路方向 - * - * @return angle - */ - Double getRoadAngle(Double lon, Double lat, float angle); - /** * 设置锁屏模式 */ 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 76d78d216a..54fb78c816 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 @@ -40,7 +40,6 @@ import com.mogo.eagle.core.function.call.map.CallerMapDataCollectorManager; import com.mogo.eagle.core.function.call.map.CallerMapDevaListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapRoadListenerManager; import com.mogo.eagle.core.function.call.map.CallerMapRomaListener; -import com.mogo.eagle.core.function.call.map.CallerMapStyleListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.ThreadUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; @@ -112,7 +111,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 .naviCursorRes(R.drawable.ic_amap_navi_cursor) .build(); private CarCursorOption mCarCursorOption = DEFAULT_OPTION; - private EnumMapUI mCurrentUI = EnumMapUI.MAP_STYLE_NIGHT_VR; + private volatile EnumMapUI mCurrentUI = EnumMapUI.MAP_STYLE_NIGHT_VR; private VisualAngleMode mVisualAngleMode = MODE_MEDIUM_SIGHT; private IHdCacheListener hdCacheListener; @@ -154,6 +153,21 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 } + private void initListeners() { + mMapView.setOnMarkClickListener(this); + mMapView.setOnMapLoadedListener(this); + mMapView.setOnMapTouchListener(this); + mMapView.setOnMapClickListener(this); + mMapView.setOnCameraChangeListener(this); + mMapView.setOnMapStyleListener(this); + mMapView.setOnRoamStatusListener(this); + mMapView.setOnMapViewVisualAngleChangeListener(this); + mMapView.setOnRoadInfoListener(this, 1); + //todo 多实例改造 + MapAutoApi.INSTANCE.registerLogListener(this, mMapView.getEventController()); + CallerLogger.INSTANCE.d(M_MAP + TAG, "styleop - initListeners - setOnMapStyleListener - view " + mMapView); + } + private void initMapView() { if (mMapView == null) { return; @@ -176,21 +190,73 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 }); } - private void initListeners() { - mMapView.setOnMarkClickListener(this); - mMapView.setOnMapLoadedListener(this); - mMapView.setOnMapTouchListener(this); - mMapView.setOnMapClickListener(this); - mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ZOOM); - mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ROTATE); - mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_3D); - mMapView.setOnCameraChangeListener(this); - mMapView.setOnMapStyleListener(this); - mMapView.setOnRoamStatusListener(this); - mMapView.setOnMapViewVisualAngleChangeListener(this); - mMapView.setOnRoadInfoListener(this, 1); - MapAutoApi.INSTANCE.registerLogListener(this, mMapView.getEventController()); - CallerLogger.INSTANCE.d(M_MAP + TAG, "styleop - initListeners - setOnMapStyleListener - view " + mMapView); + private Context getContext() { + return mMapView.getContext(); + } + + @Override + public View getMapView() { + return mMapView; + } + + @Override + public IMogoMap getMap() { + return mIMap; + } + + @Override + public void onCreate(Bundle bundle) { + if (mMapView != null) { + mMapView.onCreate(bundle); + CallerLogger.INSTANCE.d(M_MAP + TAG, "map onCreate"); + } + } + + @Override + public void onResume() { + if (mMapView != null) { + mMapView.onResume(); + CallerLogger.INSTANCE.d(M_MAP + TAG, "map onResume"); + } + } + + @Override + public void onPause() { + if (mMapView != null) { + mMapView.onPause(); + CallerLogger.INSTANCE.d(M_MAP + TAG, "map onPause"); + } + } + + @Override + public void onDestroy() { + if (mMapView != null) { + mMapView.onDestroy(); + mMapView.setOnMarkClickListener(null); + mMapView.setOnMapLoadedListener(null); + mMapView.setOnMapTouchListener(null); + mMapView.setOnMapClickListener(null); + mMapView.setOnCameraChangeListener(null); + mMapView.setOnMapStyleListener(null); + mMapView.setOnMapViewVisualAngleChangeListener(null); + //todo 多实例改造 + MapAutoApi.INSTANCE.unregisterLogListener(this, mMapView.getEventController()); + CallerLogger.INSTANCE.d(M_MAP + TAG, "map onDestroy"); + } + + } + + @Override + public void onSaveInstanceState(Bundle outState) { + if (mMapView != null) { + mMapView.onSaveInstanceState(outState); + CallerLogger.INSTANCE.d(M_MAP + TAG, "map onSaveInstanceState"); + } + } + + @Override + public void onLowMemory() { + } /** @@ -260,73 +326,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 return ret; } - - private Context getContext() { - return mMapView.getContext(); - } - - @Override - public View getMapView() { - return mMapView; - } - - @Override - public IMogoMap getMap() { - return mIMap; - } - - @Override - public void onCreate(Bundle bundle) { - if (mMapView != null) { - mMapView.onCreate(bundle); - CallerLogger.INSTANCE.d(M_MAP + TAG, "map onCreate"); - } - } - - @Override - public void onResume() { - if (mMapView != null) { - mMapView.onResume(); - CallerLogger.INSTANCE.d(M_MAP + TAG, "map onResume"); - } - } - - @Override - public void onPause() { - if (mMapView != null) { - mMapView.onPause(); - CallerLogger.INSTANCE.d(M_MAP + TAG, "map onPause"); - } - } - - @Override - public void onDestroy() { - if (mMapView != null) { - mMapView.onDestroy(); - mMapView.setOnMarkClickListener(null); - mMapView.setOnMapLoadedListener(null); - mMapView.setOnMapTouchListener(null); - mMapView.setOnMapClickListener(null); - mMapView.setOnCameraChangeListener(null); - MapAutoApi.INSTANCE.unregisterLogListener(this, mMapView.getEventController()); - CallerLogger.INSTANCE.d(M_MAP + TAG, "map onDestroy"); - } - - } - - @Override - public void onSaveInstanceState(Bundle outState) { - if (mMapView != null) { - mMapView.onSaveInstanceState(outState); - CallerLogger.INSTANCE.d(M_MAP + TAG, "map onSaveInstanceState"); - } - } - - @Override - public void onLowMemory() { - - } - @Override public MapControlResult changeZoom(float zoom) { if (isVrMold()) { @@ -339,18 +338,10 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 @Override public void changeZoom2(float zoom) { -// if (isVrMold()) { -// return; -// } CallerLogger.INSTANCE.d(M_MAP + TAG, "changeZoom2 : " + zoom); getMap().changeZoom2(zoom); } - @Override - public void setDebugMode(Boolean debugMode) { - MapAutoApi.INSTANCE.setDebugMode(debugMode); - } - @Override public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) { MapAutoViewHelper mapAutoViewHelper = mMapView.getMapAutoViewHelper(); @@ -679,21 +670,11 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 } } - @Override - public long getTileId(double lon, double lat) { - return getMap().getUIController().getTileId(lon, lat); - } - @Override public void result(@NonNull String filePath) { CallerMapDevaListenerManager.INSTANCE.invokeUploadLogFile(filePath); } - @Override - public void onMapClick(@Nullable LonLatPoint lonLatPoint) { - MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapClick(ObjectUtils.fromAMap(lonLatPoint)); - } - //渲染第一帧 @ChainLog( linkChainLog = CHAIN_TYPE_INIT_STATUS, @@ -728,10 +709,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 } } - @Override - public void onRoadLoaded(@Nullable String s) { - } - @Override public boolean onTouch(@Nullable MotionEvent motionEvent) { MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onTouch(motionEvent); @@ -739,13 +716,8 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 } @Override - public void onMarkClick(@NotNull Marker markerInfo) { -// mMarkerClickHandler.handleMarkerClicked(markerInfo); - } - - @Override - public void onRoamStatus(int status, @NonNull String msg) { - CallerMapRomaListener.INSTANCE.invokeMapRomaStatus(status, msg); + public void onMapClick(@Nullable LonLatPoint lonLatPoint) { + MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapClick(ObjectUtils.fromAMap(lonLatPoint)); } @Override @@ -755,12 +727,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapVisualAngleChanged(mVisualAngleMode); } - /** - * 获取当前视距类型 - * - * @param mode 当前类型 - * @return 当前类型 - */ private VisualAngleMode getVisualAngleMode(int mode) { switch (mode) { case 0: @@ -798,7 +764,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 @Override public void onChangeMapStyle(int styleId) { - CallerLogger.INSTANCE.d(M_MAP + TAG, "currentMapStyle = " + styleId); + CallerLogger.INSTANCE.d(M_MAP + TAG, "currentMapStyle = " + styleId + " , current = " + mCurrentUI); // 映射地图样式ID到鹰眼样式ID if (styleId == MapAutoApi.MAP_STYLE_DAY || styleId == MapAutoApi.MAP_STYLE_DAY_NAV) { @@ -818,9 +784,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 if (mCurrentUI != null) { UiThreadHandler.post(() -> { try { - CallerLogger.INSTANCE.d(M_MAP + TAG, "currentUI = " + mCurrentUI); MogoMapListenerHandler.Companion.getMogoMapListenerHandler().onMapModeChanged(mCurrentUI); - CallerMapStyleListenerManager.INSTANCE.invokeMapStyleChange(styleId); } catch (Exception e) { e.printStackTrace(); } @@ -828,6 +792,16 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 } } + @Override + public void onMarkClick(@NotNull Marker markerInfo) { + } + + @Override + public void onRoamStatus(int status, @NonNull String msg) { + CallerMapRomaListener.INSTANCE.invokeMapRomaStatus(status, msg); + } + + // 是否使用RTK数据 private boolean mRtkEnable = false; @@ -880,12 +854,6 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 } } - @Override - public float getAngle(double startLon, double startLat, double endLon, double endLat) { - return MapAutoApi.INSTANCE.getAngle(startLon, startLat, endLon, endLat); - } - - /** * 加载3D模型 */ @@ -1005,6 +973,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 PointCloudHelper.INSTANCE.setPointCloudColor(color, mMapView.getMapController()); } + //todo 多实例改造 @Override public void cacheHDDataByCity(IHdCacheListener listener) { if (mMapView.getMapAutoViewHelper() != null) { @@ -1048,6 +1017,7 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 } } + //todo 多实例改造 @Override public void cacheHDDataByCity(IHdCacheListener listener, MogoLocation location) { if (mMapView.getMapAutoViewHelper() != null) { @@ -1095,14 +1065,11 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 Integer id = HDMapUtils.getHDCityCode(gdCityCode); if (id != null) { //TODO 回调改造 - mMapView.getMapAutoViewHelper().getAllCityCode(new IResult>() { - @Override - public void result(int code, @androidx.annotation.Nullable ArrayList cityInfoList) { - if (cityInfoList != null) { - for (CityInfo cityInfo : cityInfoList) { - if (id == cityInfo.getCityCode()) { + mMapView.getMapAutoViewHelper().getAllCityCode((code, cityInfoList) -> { + if (cityInfoList != null) { + for (CityInfo cityInfo : cityInfoList) { + if (id == cityInfo.getCityCode()) { // return cityInfo.isCache(); - } } } } @@ -1138,4 +1105,9 @@ public class AMapViewWrapper implements IMogoMapView, //地图实例和接口操 mMapView.getMapAutoViewHelper().animateTo(lon, lat, v1, v2, v3, v4, duration, isGps); } } + + @Override + public void onRoadLoaded(@androidx.annotation.Nullable String roadInfo) { + + } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java index f6d168e80d..fa009334d2 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapWrapper.java @@ -39,7 +39,6 @@ public class AMapWrapper implements IMogoMap { private static final String TAG = "AMapWrapper"; - private static MapAutoViewHelper sAMap; private final IMogoMapUIController mMapUIController; private MapAutoViewHelper mAMap; private final MapAutoView mMapView; @@ -48,7 +47,6 @@ public class AMapWrapper implements IMogoMap { public AMapWrapper(MapAutoViewHelper map, MapAutoView mapView, IMogoMapUIController controller) { CallerLogger.INSTANCE.i(TAG, "autoop--AMapWrapper: init" + this); this.mAMap = map; - sAMap = map; this.mMapView = mapView; mMapUIController = controller; // 设置实现自定义 info window @@ -56,10 +54,6 @@ public class AMapWrapper implements IMogoMap { AMapUIController.getInstance().initClient(mMapUIController); } - public static MapAutoViewHelper getAMap() { - return sAMap; - } - @Override public IMogoUiSettings getUiSettings() { if (!checkAMap()) { @@ -260,7 +254,6 @@ public class AMapWrapper implements IMogoMap { private boolean checkAMap() { mAMap = mMapView.getMapAutoViewHelper(); - sAMap = mAMap; if (mAMap == null) { CallerLogger.INSTANCE.e(TAG, "自研map实例为空,请检查"); return false; @@ -271,11 +264,13 @@ public class AMapWrapper implements IMogoMap { @Override public float getRoadWidth(double lon, double lat, float angle, boolean isGpsLocation, boolean isRTK) { SinglePointRoadInfo singlePointRoadInfo = MapDataApi.INSTANCE.getSinglePointMatchRoad(lon, lat, angle, isGpsLocation, isRTK); - return singlePointRoadInfo != null ? singlePointRoadInfo.getLaneWidth() : 0; } + @Override + public CenterLine getCenterLineRangeInfo(double lon, double lat, float angle, float distance) { + } @Override public RoadNameInfo getRoadName(double lon, double lat, float angle) { @@ -287,5 +282,4 @@ public class AMapWrapper implements IMogoMap { return null; } - } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MapDataWrapper.kt b/libraries/mogo-map/src/main/java/com/mogo/map/MapDataWrapper.kt index f61d4c7b66..ac92f11b92 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MapDataWrapper.kt +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MapDataWrapper.kt @@ -3,6 +3,7 @@ package com.mogo.map import android.util.Pair import com.mogo.eagle.core.data.map.CenterLine import com.mogo.map.utils.ObjectUtils +import com.zhidaoauto.map.sdk.open.MapAutoApi import com.zhidaoauto.map.sdk.open.abs.IResult import com.zhidaoauto.map.sdk.open.data.MapDataApi import com.zhidaoauto.map.sdk.open.road.RoadRectInfos @@ -13,6 +14,13 @@ import com.zhidaoauto.map.sdk.open.routeinfo.RoadInfo */ object MapDataWrapper { + /** + * 设置debug模式 + */ + fun setDebugMode(debugMode: Boolean) { + MapAutoApi.setDebugMode(debugMode) + } + /** * 获取车道中心线数据 * @param lon 经度 @@ -21,7 +29,7 @@ object MapDataWrapper { * @param call 回调 */ @Synchronized - fun getCenterLineInfo(lon: Double, lat: Double, angle: Float,call:IResult){ + fun getCenterLineInfo(lon: Double, lat: Double, angle: Float,call:((Int, CenterLine?) -> Unit)){ MapDataApi.getCenterLineInfo( lon, lat, @@ -31,42 +39,11 @@ object MapDataWrapper { code: Int, result: com.zhidaoauto.map.sdk.open.road.CenterLine? ) { - call.result(0,ObjectUtils.transformCenterLine(result)) + call.invoke(0,ObjectUtils.transformCenterLine(result)) } }) } - /** - * 获取车道限速 - * @param lon 经度 - * @param lat 纬度 - * @param angle 角度 - * @param call 回调 - */ - fun getLimitSpeed(lon: Double, lat: Double, angle: Float,call : IResult) { - MapDataApi.getLimitSpeed(lon, lat, angle, object : IResult { - override fun result(code: Int, result: RoadInfo?) { - call.result(code,result?.speed?:0) - } - }) - } - - - /** - * 获取道路角度 - * @param lon 经度 - * @param lat 纬度 - * @param angle 角度 - * @param call 回调 - */ - fun getRoadAngle(lon: Double, lat: Double, angle: Float,call : IResult) { - MapDataApi.getRoadRectInfo(lon, lat, angle, object : IResult { - override fun result(code: Int, result: RoadRectInfos?) { - call.result(code,result?.angle?:0.0) - } - }) - } - /** * 按距离获取道路数据 * @param lon 经度 @@ -79,10 +56,9 @@ object MapDataWrapper { lat: Double, angle: Float, distance: Float, - call:IResult + call:((Int,com.mogo.map.center.CenterLine?) -> Unit) ) { try { - MapDataApi.getCenterLineRangeInfo( lon, lat, @@ -104,7 +80,7 @@ object MapDataWrapper { info.angle?:0.0 ) } - call.result(code,ret) + call.invoke(code,ret) } }) } catch (t: Throwable) { @@ -123,4 +99,54 @@ object MapDataWrapper { return ret } + /** + * 获取车道限速 + * @param lon 经度 + * @param lat 纬度 + * @param angle 角度 + * @param call 回调 + */ + fun getLimitSpeed(lon: Double, lat: Double, angle: Float,call : ((Int) -> Unit)) { + MapDataApi.getLimitSpeed(lon, lat, angle, object : IResult { + override fun result(code: Int, result: RoadInfo?) { + call.invoke(result?.speed?:0) + } + }) + } + + /** + * 获取道路角度 + * @param lon 经度 + * @param lat 纬度 + * @param angle 角度 + * @param call 回调 + */ + fun getRoadAngle(lon: Double, lat: Double, angle: Float,call : IResult) { + MapDataApi.getRoadRectInfo(lon, lat, angle, object : IResult { + override fun result(code: Int, result: RoadRectInfos?) { + call.result(code,result?.angle?:0.0) + } + }) + } + + /** + * 获取行车方向 + * + * @return + */ + fun getAngle(startLon: Double, startLat: Double, endLon: Double, endLat: Double): Float { + return MapAutoApi.getAngle(startLon, startLat, endLon, endLat) + } + + /** + * 获取瓦片id + * + * @param lon 经度 + * @param lat 纬度 + * @return 瓦片id + */ + fun getTileId(lon: Double, lat: Double): Long { + return MapAutoApi.getTileID(lon, lat, 13) // 13为默认获取瓦片层级级别 + } + } \ No newline at end of file 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 d2e239d2b1..ce438cf699 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 @@ -76,14 +76,6 @@ public class MogoMapUIController implements IMogoMapUIController { } } - @Override - public void setDebugMode(Boolean debugMode) { - initDelegate(); - if (mDelegate != null) { - mDelegate.setDebugMode(debugMode); - } - } - @Override public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) { initDelegate(); @@ -326,30 +318,6 @@ public class MogoMapUIController implements IMogoMapUIController { } } - @Override - public long getTileId(double lon, double lat) { - if (mDelegate != null) { - return mDelegate.getTileId(lon, lat); - } - return 0; - } - - @Override - public int getLimitSpeed(double lon, double lat, float angle) { - if (mDelegate != null) { - return mDelegate.getLimitSpeed(lon, lat, angle); - } - return 0; - } - - @Override - public CenterLine getCenterLineInfo(double lon, double lat, float angle) { - if (mDelegate != null) { - return mDelegate.getCenterLineInfo(lon, lat, angle); - } - return null; - } - @Override public void rtkEnable(boolean enable) { initDelegate(); @@ -396,23 +364,6 @@ public class MogoMapUIController implements IMogoMapUIController { } } - @Override - public float getAngle(double startLon, double startLat, double endLon, double endLat) { - initDelegate(); - if (mDelegate != null) { - return mDelegate.getAngle(startLon, startLat, endLon, endLat); - } - return 0.0f; - } - - @Override - public Double getRoadAngle(Double lon, Double lat, float angle) { - if (mDelegate != null) { - return mDelegate.getRoadAngle(lon, lat, angle); - } - return 0.0; - } - @Override public void setLockMode(boolean isLock) { initDelegate(); diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java index 7936a87a64..2d799c3a5a 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/uicontroller/AMapUIController.java @@ -63,13 +63,6 @@ public class AMapUIController implements IMogoMapUIController { } } - @Override - public void setDebugMode(Boolean debugMode) { - if (mClient != null) { - mClient.setDebugMode(debugMode); - } - } - @Override public void changeMapVisualAngle(VisualAngleMode angelMode, MogoLatLng mogoLatLng) { if (mClient != null) { @@ -282,27 +275,6 @@ public class AMapUIController implements IMogoMapUIController { } } - @Override - public long getTileId(double lon, double lat) { - return MapAutoApi.INSTANCE.getTileID(lon, lat, 13); // 13为默认获取瓦片层级级别 - } - - @Override - public int getLimitSpeed(double lon, double lat, float angle) { - if(mClient!= null){ - return mClient.getLimitSpeed(lon, lat, angle); - } - return 0; - } - - @Override - public CenterLine getCenterLineInfo(double lon, double lat, float angle) { - if(mClient != null){ - return mClient.getCenterLineInfo(lon, lat, angle); - } - return null; - } - @Override public void rtkEnable(boolean enable) { if (mClient != null) { @@ -310,7 +282,6 @@ public class AMapUIController implements IMogoMapUIController { } } - @Override public void stepInVrMode(boolean isDayMode) { if (mClient != null) { @@ -341,22 +312,6 @@ public class AMapUIController implements IMogoMapUIController { } } - @Override - public float getAngle(double startLon, double startLat, double endLon, double endLat) { - if (mClient != null) { - return mClient.getAngle(startLon, startLat, endLon, endLat); - } - return 0; - } - - @Override - public Double getRoadAngle(Double lon, Double lat, float angle) { - if (mClient != null) { - return mClient.getRoadAngle(lon, lat, angle); - } - return 0.0; - } - @Override public void setLockMode(boolean isLock) { if (mClient != null) {