diff --git a/.idea/gradle.xml b/.idea/gradle.xml index cfc605c98e..b892d6479b 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -84,7 +84,6 @@ diff --git a/.idea/misc.xml b/.idea/misc.xml index f4d5deeca6..3b62eef43d 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + diff --git a/app/build.gradle b/app/build.gradle index 31b58785e9..a8694d3291 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -20,12 +20,6 @@ android { } multiDexEnabled true - externalNativeBuild { - ndk { - // 设置支持的SO库架构 - abiFilters "armeabi-v7a" - } - } } packagingOptions { @@ -155,6 +149,30 @@ android { // 分享时是否隐藏 adas buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false' } + // f系列-分体机-高德 + f8Amap { + applicationId rootProject.ext.android.fLauncherApplicationId + dimension "product" + buildConfigField 'boolean', 'AI_ASSIST_ACTIVE_STAUTS', 'false' + // 车机类型,主要用于区分自研车机还是别人家的车机,自研车机类型为0 + buildConfigField 'int', 'CAR_MACHINE_TYPE', '0' + buildConfigField 'boolean', 'ROAD_EVENT_ANIMATED', 'true' + manifestPlaceholders = [AMAP_API_VALUE: rootProject.ext.android.fLauncherAmapApiValue] + // 是否使用高德sdk自定义导航 + buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false' + // 是否支持换肤 + buildConfigField 'boolean', 'IS_SKIN_SUPPORTED', 'true' + // 是否支持查询导航目的地车友 + buildConfigField 'boolean', 'IS_SUPPORTED_SEARCH_DESTINATION_ONLINE_CAR_LIST', 'true' + // 是否支持桌面卡片刷新 + buildConfigField 'boolean', 'IS_SUPPORT_LAUNCHER_CARD_REFRESH_STRATEGY', 'false' + // 是否基于地图 + buildConfigField 'boolean', 'IS_MAP_BASED', 'true' + // 是否加载引导模块 + buildConfigField 'boolean', 'IS_NEED_LOAD_GUIDE_MODULE', 'true' + // 分享时是否隐藏 adas + buildConfigField 'boolean', 'IS_NEED_HIDE_ADAS_WHEN_SHARE', 'false' + } // e系列,采用Launcher方案 e8xx { applicationId rootProject.ext.android.launcherApplicationId @@ -385,6 +403,8 @@ android { } } + apply from: "./functions/abiFilters.gradle" + packagingOptions { exclude 'META-INF/io.netty.versions.properties' } @@ -453,6 +473,7 @@ dependencies { implementation project(':modules:mogo-module-map') } + apply from: "./functions/basedmap.gradle" apply from: "./functions/perform.gradle" apply from: "./functions/baseservices.gradle" apply from: "./functions/socketpush.gradle" diff --git a/app/functions/abiFilters.gradle b/app/functions/abiFilters.gradle new file mode 100644 index 0000000000..076f371a56 --- /dev/null +++ b/app/functions/abiFilters.gradle @@ -0,0 +1,112 @@ +// 将 install 和 assemble 任务按功能分组 + +project.android.productFlavors { + // f系列-分体机全系列,未细分 + f8xx { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "arm64-v8a","armeabi-v7a" + } + } + } + // f系列-分体机 + f80x { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "arm64-v8a","armeabi-v7a" + } + } + } + // f系列-分体机-高德 + f8Amap { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // e系列,采用Launcher方案 + e8xx { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // 同上 + em4 { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // e系列-2+32,对标D系列2+32,采用独立app的形式 + em3 { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // e系列-1+16,对标D系列1+16,采用独立app形式 + em1 { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // e系列-1+16,对标D系列1+16,采用独立app形式 + em2 { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // d系列 + d8xx { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // d系列 2 + 32 + d80x { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // d系列 1+16 版本 + d82x { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } + // 比亚迪 + bydauto { + externalNativeBuild { + ndk { + // 设置支持的SO库架构 + abiFilters "armeabi-v7a" + } + } + } +} \ No newline at end of file diff --git a/app/functions/basedmap.gradle b/app/functions/basedmap.gradle new file mode 100644 index 0000000000..3e38ddad78 --- /dev/null +++ b/app/functions/basedmap.gradle @@ -0,0 +1,35 @@ +// 辅助驾驶占位模块,目前部分车机不上辅助驾驶功能,使用该模块能力代替 + +project.dependencies { + if (Boolean.valueOf(RELEASE)) { + + f8xxImplementation rootProject.ext.dependencies.mapcustom + f80xImplementation rootProject.ext.dependencies.mapcustom + + f8AmapImplementation rootProject.ext.dependencies.mapamap + bydautoImplementation rootProject.ext.dependencies.mapamap + d82xImplementation rootProject.ext.dependencies.mapamap + em1Implementation rootProject.ext.dependencies.mapamap + em2Implementation rootProject.ext.dependencies.mapamap + d8xxImplementation rootProject.ext.dependencies.mapamap + d80xImplementation rootProject.ext.dependencies.mapamap + em4Implementation rootProject.ext.dependencies.mapamap + e8xxImplementation rootProject.ext.dependencies.mapamap + e8xxImplementation rootProject.ext.dependencies.mapamap + em3Implementation rootProject.ext.dependencies.mapamap + } else { + f8xxImplementation project(':libraries:map-custom') + f80xImplementation project(':libraries:map-custom') + + f8AmapImplementation project(':libraries:map-amap') + bydautoImplementation project(':libraries:map-amap') + d82xImplementation project(':libraries:map-amap') + em1Implementation project(':libraries:map-amap') + em2Implementation project(':libraries:map-amap') + d8xxImplementation project(':libraries:map-amap') + d80xImplementation project(':libraries:map-amap') + em4Implementation project(':libraries:map-amap') + e8xxImplementation project(':libraries:map-amap') + em3Implementation project(':libraries:map-amap') + } +} \ No newline at end of file diff --git a/app/functions/baseservices.gradle b/app/functions/baseservices.gradle index 064e9b8b87..46a690b86b 100644 --- a/app/functions/baseservices.gradle +++ b/app/functions/baseservices.gradle @@ -13,6 +13,7 @@ project.dependencies { e8xxImplementation rootProject.ext.dependencies.mogobaseserviceapk f8xxImplementation rootProject.ext.dependencies.mogobaseserviceapk f80xImplementation rootProject.ext.dependencies.mogobaseserviceapk + f8AmapImplementation rootProject.ext.dependencies.mogobaseserviceapk em3Implementation rootProject.ext.dependencies.mogobaseserviceapk } else { bydautoImplementation project(':foudations:mogo-base-services-sdk') @@ -26,6 +27,7 @@ project.dependencies { e8xxImplementation project(':foudations:mogo-base-services-apk') f8xxImplementation project(':foudations:mogo-base-services-apk') f80xImplementation project(':foudations:mogo-base-services-apk') + f8AmapImplementation project(':foudations:mogo-base-services-apk') em3Implementation project(':foudations:mogo-base-services-apk') } } \ No newline at end of file diff --git a/app/functions/bizguide.gradle b/app/functions/bizguide.gradle index a06377360a..7e515af462 100644 --- a/app/functions/bizguide.gradle +++ b/app/functions/bizguide.gradle @@ -9,6 +9,7 @@ project.dependencies { e8xxImplementation rootProject.ext.dependencies.mogomoduleguide f8xxImplementation rootProject.ext.dependencies.mogomoduleguide f80xImplementation rootProject.ext.dependencies.mogomoduleguide + f8AmapImplementation rootProject.ext.dependencies.mogomoduleguide em3Implementation rootProject.ext.dependencies.mogomoduleguide } else { bydautoImplementation project(':modules:mogo-module-guide') @@ -18,6 +19,7 @@ project.dependencies { e8xxImplementation project(':modules:mogo-module-guide') f8xxImplementation project(':modules:mogo-module-guide') f80xImplementation project(':modules:mogo-module-guide') + f8AmapImplementation project(':modules:mogo-module-guide') em3Implementation project(':modules:mogo-module-guide') } } \ No newline at end of file diff --git a/app/functions/httpdns.gradle b/app/functions/httpdns.gradle index ad62f966ef..326008a36f 100644 --- a/app/functions/httpdns.gradle +++ b/app/functions/httpdns.gradle @@ -11,6 +11,7 @@ project.dependencies { e8xxImplementation rootProject.ext.dependencies.httpdnsnoop f8xxImplementation rootProject.ext.dependencies.httpdnstencent f80xImplementation rootProject.ext.dependencies.httpdnstencent + f8AmapImplementation rootProject.ext.dependencies.httpdnstencent em3Implementation rootProject.ext.dependencies.httpdnsnoop } else { bydautoImplementation project(':foudations:httpdns-noop') @@ -22,6 +23,7 @@ project.dependencies { e8xxImplementation project(':foudations:httpdns-noop') f8xxImplementation project(':foudations:httpdns-tencent') f80xImplementation project(':foudations:httpdns-tencent') + f8AmapImplementation project(':foudations:httpdns-tencent') em3Implementation project(':foudations:httpdns-noop') } } \ No newline at end of file diff --git a/app/functions/leftpanel.gradle b/app/functions/leftpanel.gradle index a48cd07a81..a18486b725 100644 --- a/app/functions/leftpanel.gradle +++ b/app/functions/leftpanel.gradle @@ -14,6 +14,7 @@ project.dependencies { e8xxImplementation rootProject.ext.dependencies.moduleleftpanelnoop f8xxImplementation rootProject.ext.dependencies.moduleleftpanelnoop f80xImplementation rootProject.ext.dependencies.moduleleftpanelnoop + f8AmapImplementation rootProject.ext.dependencies.moduleleftpanelnoop em3Implementation rootProject.ext.dependencies.moduleleftpanelnoop } else { bydautoImplementation project(':modules:mogo-module-left-panel') @@ -27,6 +28,7 @@ project.dependencies { e8xxImplementation project(':modules:mogo-module-left-panel-noop') f8xxImplementation project(':modules:mogo-module-left-panel-noop') f80xImplementation project(':modules:mogo-module-left-panel-noop') + f8AmapImplementation project(':modules:mogo-module-left-panel-noop') em3Implementation project(':modules:mogo-module-left-panel-noop') } } \ No newline at end of file diff --git a/app/functions/skin.gradle b/app/functions/skin.gradle index b74c1d170d..091ed3f2c0 100644 --- a/app/functions/skin.gradle +++ b/app/functions/skin.gradle @@ -11,11 +11,13 @@ project.dependencies { d80xImplementation rootProject.ext.dependencies.skinsupportimpl f8xxImplementation rootProject.ext.dependencies.skinsupportimpl f80xImplementation rootProject.ext.dependencies.skinsupportimpl + f8AmapImplementation rootProject.ext.dependencies.skinsupportimpl em4Implementation rootProject.ext.dependencies.skinsupportimpl e8xxImplementation rootProject.ext.dependencies.skinsupportimpl f8xxImplementation rootProject.ext.dependencies.skinsupportlight f80xImplementation rootProject.ext.dependencies.skinsupportlight + f8AmapImplementation rootProject.ext.dependencies.skinsupportlight em4Implementation rootProject.ext.dependencies.skinsupportlight e8xxImplementation rootProject.ext.dependencies.skinsupportlight d8xxImplementation rootProject.ext.dependencies.skinsupportlight @@ -35,11 +37,13 @@ project.dependencies { d80xImplementation project(':skin:mogo-skin-support-impl') f8xxImplementation project(':skin:mogo-skin-support-impl') f80xImplementation project(':skin:mogo-skin-support-impl') + f8AmapImplementation project(':skin:mogo-skin-support-impl') em4Implementation project(':skin:mogo-skin-support-impl') e8xxImplementation project(':skin:mogo-skin-support-impl') f8xxImplementation project(':skin:mogo-skin-light') f80xImplementation project(':skin:mogo-skin-light') + f8AmapImplementation project(':skin:mogo-skin-light') em4Implementation project(':skin:mogo-skin-light') e8xxImplementation project(':skin:mogo-skin-light') d8xxImplementation project(':skin:mogo-skin-light') diff --git a/app/functions/tts.gradle b/app/functions/tts.gradle index 796ba7d340..57ba189d2b 100644 --- a/app/functions/tts.gradle +++ b/app/functions/tts.gradle @@ -9,6 +9,7 @@ project.dependencies { d80xImplementation rootProject.ext.dependencies.ttszhi f8xxImplementation rootProject.ext.dependencies.ttszhi f80xImplementation rootProject.ext.dependencies.ttszhi + f8AmapImplementation rootProject.ext.dependencies.ttszhi em4Implementation rootProject.ext.dependencies.ttszhi e8xxImplementation rootProject.ext.dependencies.ttszhi } else { @@ -21,6 +22,7 @@ project.dependencies { d80xImplementation project(':tts:tts-zhi') f8xxImplementation project(':tts:tts-zhi') f80xImplementation project(':tts:tts-zhi') + f8AmapImplementation project(':tts:tts-zhi') em4Implementation project(':tts:tts-zhi') e8xxImplementation project(':tts:tts-zhi') } diff --git a/app/regroup.gradle b/app/regroup.gradle index 35af7ed6d0..8a155ea5ef 100644 --- a/app/regroup.gradle +++ b/app/regroup.gradle @@ -3,7 +3,7 @@ afterEvaluate { def independent = ["em3", "em1", "d80x", "d82x", "bydauto", "em2"] - def launcher = ["f80x", "em4", "e8xx"] + def launcher = ["f80x", "f8xx","f8amap", "em4", "e8xx"] it.getTasks().iterator().forEachRemaining { def task = it diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java index 46338739f7..d4b61fb6b7 100644 --- a/app/src/main/java/com/mogo/launcher/MogoApplication.java +++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java @@ -36,11 +36,6 @@ import com.squareup.leakcanary.LeakCanary; import com.zhidao.boot.persistent.lib.PersistentManager; import com.zhidao.mogo.module.left.panel.LeftPanelConst; -import java.util.List; - -import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_FRAGMENT; -import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_MODULE_NAME; - /** * @author congtaowang * @since 2019-12-18 @@ -79,7 +74,7 @@ public class MogoApplication extends AbsMogoApplication { MogoModulePaths.addBaseModule( new MogoModule( MogoServicePaths.PATH_WIDGETS, MogoServicePaths.PATH_WIDGETS ) ); if ( DebugConfig.isMapBased() ) { - MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) ); +// MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) ); } MogoModulePaths.addBaseModule( new MogoModule( ShareConstants.TAG, ShareConstants.MODEL_NAME ) ); diff --git a/gradle.properties b/gradle.properties index 1038e7642b..6c9fa877a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -137,7 +137,7 @@ HTTPDNS_NOOP_VERSION = 1.0.0 ######## 外部依赖引用 # 车聊聊 -CARCHATTING_VERSION=2.2.5 +CARCHATTING_VERSION=2.2.10 # 车聊聊接口 CARCHATTINGPROVIDER_VERSION=1.1.7 # loglib diff --git a/libraries/map-amap/build.gradle b/libraries/map-amap/build.gradle index eb791c34e2..bb8bef0ff3 100644 --- a/libraries/map-amap/build.gradle +++ b/libraries/map-amap/build.gradle @@ -11,6 +11,12 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' + + javaCompileOptions { + annotationProcessorOptions { + arguments = [AROUTER_MODULE_NAME: project.getName()] + } + } } buildTypes { @@ -25,6 +31,10 @@ android { targetCompatibility 1.8 } + lintOptions { + abortOnError false + } + } dependencies { @@ -35,6 +45,9 @@ dependencies { api rootProject.ext.dependencies.amapsearch api rootProject.ext.dependencies.amaplocation + implementation rootProject.ext.dependencies.arouter + annotationProcessor rootProject.ext.dependencies.aroutercompiler + if (Boolean.valueOf(RELEASE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogomapapi diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapApiBuilder.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapApiBuilder.java new file mode 100644 index 0000000000..9905272f37 --- /dev/null +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapApiBuilder.java @@ -0,0 +1,121 @@ +package com.mogo.map.impl.amap; + +import android.content.Context; +import android.view.ViewGroup; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.map.IMogoMapApiBuilder; +import com.mogo.map.IMogoMapView; +import com.mogo.map.MapApiPath; +import com.mogo.map.impl.amap.location.ALocationClient; +import com.mogo.map.impl.amap.navi.AimlessClient; +import com.mogo.map.impl.amap.navi.NaviClient; +import com.mogo.map.impl.amap.search.GeocodeSearchClient; +import com.mogo.map.impl.amap.search.InputtipsSearch; +import com.mogo.map.impl.amap.search.PoiSearchClient; +import com.mogo.map.impl.amap.search.RoadSearchClient; +import com.mogo.map.impl.amap.search.TrafficSearchClient; +import com.mogo.map.impl.amap.uicontroller.AMapUIController; +import com.mogo.map.impl.amap.utils.IconTypeUtils; +import com.mogo.map.location.IMogoLocationClient; +import com.mogo.map.navi.IMogoAimless; +import com.mogo.map.navi.IMogoNavi; +import com.mogo.map.search.drive.IMogoRoadSearch; +import com.mogo.map.search.geo.IMogoGeoSearch; +import com.mogo.map.search.inputtips.IMogoInputtipsSearch; +import com.mogo.map.search.inputtips.query.MogoInputtipsQuery; +import com.mogo.map.search.poisearch.IMogoPoiSearch; +import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery; +import com.mogo.map.search.traffic.IMogoTrafficSearch; +import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.utils.logger.Logger; + +public +/** + * @author congtaowang + * @since 2020/12/9 + * + * 描述 + */ +@Route( path = MapApiPath.PATH ) +class AMapApiBuilder implements IMogoMapApiBuilder { + + private static final String TAG = "AMapApiBuilder"; + + @Override + public IMogoGeoSearch getGeoSearch( Context context ) { + return new GeocodeSearchClient( context ); + } + + @Override + public IMogoInputtipsSearch getInputtipsSearch( Context context, MogoInputtipsQuery query ) { + return new InputtipsSearch( context, query ); + } + + @Override + public IMogoLocationClient getLocationClient( Context context ) { + return new ALocationClient( context ); + } + + @Override + public IMogoMapUIController getMapUIController() { + return AMapUIController.getInstance(); + } + + @Override + public IMogoNavi getNavi( Context context ) { + return NaviClient.getInstance( context ); + } + + @Override + public IMogoPoiSearch getPoiSearchClient( Context context, MogoPoiSearchQuery query ) { + return new PoiSearchClient( context, query ); + } + + @Override + public IMogoRoadSearch getRoadSearch() { + return new RoadSearchClient(); + } + + @Override + public IMogoAimless getAimless( Context context ) { + return AimlessClient.getInstance( context ); + } + + @Override + public void createMapView( Context context ) { + AMapViewHandler.createMapView( context ); + } + + @Override + public void destroy() { + AMapViewHandler.destroy(); + } + + @Override + public IMogoMapView getMapView( Context context ) { + IMogoMapView mapView = AMapViewHandler.getMapView(); + if ( mapView != null + && mapView.getMapView() != null + && mapView.getMapView().getParent() != null ) { + ViewGroup group = ( ViewGroup ) mapView.getMapView().getParent(); + group.removeView( mapView.getMapView() ); + } + return mapView; + } + + @Override + public IMogoTrafficSearch getTrafficSearch() { + return new TrafficSearchClient(); + } + + @Override + public int getResIdByIconType( Context context, int iconType ) { + return IconTypeUtils.getResIdByIconType( context, iconType ); + } + + @Override + public void init( Context context ) { + Logger.d( TAG, "init." ); + } +} diff --git a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java index 7e24d7e619..4116eca0d7 100644 --- a/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java +++ b/libraries/map-amap/src/main/java/com/mogo/map/impl/amap/AMapViewHandler.java @@ -24,6 +24,7 @@ class AMapViewHandler { public static void createMapView( Context context ) { sMapView = new AMapNaviViewWrapper( new AMapNaviView( context ) ); + Logger.d( TAG, "created." ); } public static IMogoMapView getMapView() { diff --git a/libraries/map-autonavi/build.gradle b/libraries/map-autonavi/build.gradle index fe07d63360..46cf993136 100644 --- a/libraries/map-autonavi/build.gradle +++ b/libraries/map-autonavi/build.gradle @@ -33,13 +33,11 @@ dependencies { implementation rootProject.ext.dependencies.mogomapapi implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogomapapi - implementation rootProject.ext.dependencies.mapamap } else { implementation project(':foudations:mogo-utils') implementation project(':libraries:mogo-map-api') implementation project(':foudations:mogo-commons') implementation project(':services:mogo-service-api') - implementation project(':libraries:map-amap') } } diff --git a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java index 07e70239ae..8e082f3bfd 100644 --- a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java +++ b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviClient.java @@ -6,11 +6,9 @@ import android.graphics.Rect; import android.location.Location; import com.mogo.map.MogoLatLng; -import com.mogo.map.impl.amap.navi.NaviClient; import com.mogo.map.navi.IMogoCarLocationChangedListener2; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.MogoCalculatePath; -import com.mogo.map.navi.MogoCarLocationChangedListenerRegister; import com.mogo.map.navi.MogoNaviConfig; import com.mogo.map.navi.OnCalculatePathItemClickInteraction; import com.mogo.utils.logger.Logger; @@ -169,7 +167,7 @@ public class AutoNaviClient implements IMogoNavi { @Override public MogoNaviConfig getNaviConfig() { Logger.w( TAG, "高德车机导航,不支持此设置" ); - return NaviClient.getInstance( mContext ).getNaviConfig(); + return MogoMapApi.getApiBuilder().getNavi( mContext ).getNaviConfig(); } @Override @@ -186,12 +184,12 @@ public class AutoNaviClient implements IMogoNavi { @Override public MogoLatLng getCarLocation() { - return NaviClient.getInstance( mContext ).getCarLocation(); + return MogoMapApi.getApiBuilder().getNavi( mContext ).getCarLocation(); } @Override public Location getCarLocation2() { - return NaviClient.getInstance( mContext ).getCarLocation2(); + return MogoMapApi.getApiBuilder().getNavi( mContext ).getCarLocation2(); } @Override @@ -221,11 +219,11 @@ public class AutoNaviClient implements IMogoNavi { @Override public void setUseExtraGPSData( boolean use ) { - NaviClient.getInstance( mContext ).setUseExtraGPSData( use ); + MogoMapApi.getApiBuilder().getNavi( mContext ).setUseExtraGPSData( use ); } @Override public void setExtraGPSData( double lon, double lat, float speed, float accuracy, float bearing, long timestamp ) { - NaviClient.getInstance( mContext ).setExtraGPSData( lon, lat, speed, accuracy, bearing, timestamp ); + MogoMapApi.getApiBuilder().getNavi( mContext ).setExtraGPSData( lon, lat, speed, accuracy, bearing, timestamp ); } } diff --git a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java index 7df39ce72c..ecf250781d 100644 --- a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java +++ b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/AutoNaviReceiver.java @@ -7,7 +7,6 @@ import android.content.IntentFilter; import android.text.TextUtils; import com.mogo.commons.storage.SpStorage; -import com.mogo.map.impl.amap.utils.IconTypeUtils; import com.mogo.map.navi.MogoNaviInfo; import com.mogo.map.navi.MogoNaviListenerHandler; import com.mogo.map.navi.MogoTraffic; @@ -68,7 +67,7 @@ public class AutoNaviReceiver extends BroadcastReceiver { break; case 10056: String json = intent.getStringExtra( "EXTRA_ROAD_INFO" ); - SpStorage.setNavigationTarget(json); + SpStorage.setNavigationTarget( json ); Logger.d( TAG, json ); break; } @@ -101,7 +100,7 @@ public class AutoNaviReceiver extends BroadcastReceiver { sNaviInfo.setCurrentSpeed( intent.getIntExtra( GuideInfoExtraKey.CUR_SPEED, 0 ) ); sNaviInfo.setCurStepRetainDistance( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_DIS, 0 ) ); sNaviInfo.setCurStepRetainTime( intent.getIntExtra( GuideInfoExtraKey.SEG_REMAIN_TIME, 0 ) ); - sNaviInfo.setIconResId( IconTypeUtils.getResIdByIconType( context, intent.getIntExtra( GuideInfoExtraKey.NEW_ICON, 0 ) ) ); + sNaviInfo.setIconResId( MogoMapApi.getApiBuilder().getResIdByIconType( context, intent.getIntExtra( GuideInfoExtraKey.NEW_ICON, 0 ) ) ); sNaviInfo.setNextRoadName( intent.getStringExtra( GuideInfoExtraKey.NEXT_ROAD_NAME ) ); sNaviInfo.setPathRetainDistance( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_DIS, 0 ) ); sNaviInfo.setPathRetainTime( intent.getIntExtra( GuideInfoExtraKey.ROUTE_REMAIN_TIME, 0 ) ); diff --git a/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/MogoMapApi.java b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/MogoMapApi.java new file mode 100644 index 0000000000..1f99ae45d0 --- /dev/null +++ b/libraries/map-autonavi/src/main/java/com/mogo/map/impl/automap/navi/MogoMapApi.java @@ -0,0 +1,25 @@ +package com.mogo.map.impl.automap.navi; + +import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.map.IMogoMapApiBuilder; + +public +/** + * @author congtaowang + * @since 2020/12/10 + * + * 描述 + */ +class MogoMapApi { + + private static IMogoMapApiBuilder sApiBuilder; + + public static IMogoMapApiBuilder getApiBuilder() { + if ( sApiBuilder == null ) { + synchronized ( AutoNaviClient.class ) { + sApiBuilder = ARouter.getInstance().navigation( IMogoMapApiBuilder.class ); + } + } + return sApiBuilder; + } +} diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle index ee7e68bcb6..7e6927b3ad 100644 --- a/libraries/map-custom/build.gradle +++ b/libraries/map-custom/build.gradle @@ -13,6 +13,12 @@ android { testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles 'consumer-rules.pro' + + javaCompileOptions { + annotationProcessorOptions { + arguments = [AROUTER_MODULE_NAME: project.getName()] + } + } } buildTypes { @@ -32,6 +38,10 @@ android { exclude 'META-INF/*' } + lintOptions { + abortOnError false + } + } dependencies { @@ -40,6 +50,8 @@ dependencies { implementation rootProject.ext.dependencies.androidxappcompat implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" + implementation rootProject.ext.dependencies.arouter + annotationProcessor rootProject.ext.dependencies.aroutercompiler // api rootProject.ext.dependencies.amapnavi3dmap // api rootProject.ext.dependencies.amapsearch @@ -55,7 +67,7 @@ dependencies { implementation project(':foudations:mogo-commons') } - implementation 'com.zhidaoauto.machine:map:1.0.0-online-30' + implementation 'com.zhidaoauto.machine:map:1.0.0-vr-6.5' } apply from: new File(rootProject.rootDir, "gradle/upload.gradle").toString() diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java index 90b4325aa7..46f0fb848a 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/AMapViewWrapper.java @@ -1,7 +1,6 @@ package com.mogo.map.impl.custom; import android.content.Context; -import android.graphics.BitmapFactory; import android.graphics.Point; import android.graphics.Rect; import android.location.Location; @@ -27,12 +26,13 @@ import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.MapCameraPosition; import com.mogo.map.uicontroller.MapControlResult; import com.mogo.utils.logger.Logger; - import com.zhidaoauto.map.sdk.open.MapAutoApi; +import com.zhidaoauto.map.sdk.open.MapParams; import com.zhidaoauto.map.sdk.open.abs.MapStatusListener; import com.zhidaoauto.map.sdk.open.abs.OnCameraChangeListener; import com.zhidaoauto.map.sdk.open.abs.OnMapClickListener; import com.zhidaoauto.map.sdk.open.abs.OnMapLoadedListener; +import com.zhidaoauto.map.sdk.open.abs.OnMapStyleListener; import com.zhidaoauto.map.sdk.open.abs.OnMapTouchListener; import com.zhidaoauto.map.sdk.open.camera.CameraPosition; import com.zhidaoauto.map.sdk.open.camera.CameraUpdateFactory; @@ -52,8 +52,16 @@ import org.jetbrains.annotations.Nullable; import java.util.List; -public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, LocationListener, OnMapLoadedListener, MapStatusListener, OnCameraChangeListener, - OnMapClickListener, OnMapTouchListener, OnMarkClickListener { +public class AMapViewWrapper implements IMogoMapView, + IMogoMapUIController, + LocationListener, + OnMapLoadedListener, + MapStatusListener, + OnCameraChangeListener, + OnMapClickListener, + OnMapTouchListener, + OnMarkClickListener, + OnMapStyleListener { private static final String TAG = "AMapViewWrapper"; private final MapAutoView mMapView; @@ -73,6 +81,8 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca .build(); private CarCursorOption mCarCursorOption = DEFAULT_OPTION; + private Location mLastDriveLocationShadow = null; + public AMapViewWrapper( MapAutoView mMapView ) { startTime = System.currentTimeMillis(); Logger.i( TAG, "autoop--AMapViewWrapper: init" ); @@ -163,7 +173,6 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca // mMapView.setOnPolylineClickListener( this ); // mMapView.setAMapNaviViewListener( this ); -// mMapView.setOnCameraChangeListener( this ); // // final AMap aMap = mMapView.getMap(); // if ( aMap != null ) { @@ -195,8 +204,7 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca mMapView.onCreate( bundle ); Logger.d( TAG, "map onCreate" ); initMapView(); - -// initMyLocation(); + initMyLocation(); } } @@ -240,7 +248,7 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca @Override public void setTrafficEnabled( boolean visible ) { if ( checkAMapView() ) { -// mMapView.getMapAutoViewHelper().setTraffic(visible); + mMapView.getMapAutoViewHelper().setTraffic( visible ); } } @@ -292,28 +300,29 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca return; } if ( checkAMapView() ) { -// switch (ui) { -// case CarUp_2D: -// case CarUp_3D: -// case NorthUP_2D: -// break; -// case Type_VR: -// mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_VR); -// //setUIMode( ui, options ); -// return; -// case Type_Light: -// mMapView.getMapAutoViewHelper().setAutoSwitchStyle(false); -// mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_DAY); -// break; -// case Type_Night: -// mMapView.getMapAutoViewHelper().setAutoSwitchStyle(false); -// mMapView.getMapAutoViewHelper().setMapStyle(MapAutoApi.MAP_STYLE_NIGHT); -// break; -// case Type_AUTO_LIGHT_Night: -// mMapView.getMapAutoViewHelper().setAutoSwitchStyle(true); -// break; - } + switch ( ui ) { + case CarUp_2D: + case CarUp_3D: + case NorthUP_2D: + break; + case Type_VR: + mMapView.getMapAutoViewHelper().setMapStyle( MapAutoApi.MAP_STYLE_VR ); + setUIMode( ui ); + return; + case Type_Light: + mMapView.getMapAutoViewHelper().setAutoSwitchStyle( false ); + mMapView.getMapAutoViewHelper().setMapStyle( MapAutoApi.MAP_STYLE_DAY ); + break; + case Type_Night: + mMapView.getMapAutoViewHelper().setAutoSwitchStyle( false ); + mMapView.getMapAutoViewHelper().setMapStyle( MapAutoApi.MAP_STYLE_NIGHT ); + break; + case Type_AUTO_LIGHT_Night: + mMapView.getMapAutoViewHelper().setAutoSwitchStyle( true ); + break; + } + } } @Override @@ -442,7 +451,6 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca } - @Override public float getScalePerPixel() { return getMap().getScalePerPixel(); @@ -458,7 +466,6 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca return ObjectUtils.fromAMap( MapTools.INSTANCE.getVisibleRegion().getRightTopPoint() ); } - @Override public MogoLatLng getCameraSouthWestPosition() { try { @@ -482,11 +489,8 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca @Override public void setPointToCenter( double mapCenterX, double mapCenterY ) { if ( checkAMapView() ) { -// if (DebugConfig.isDebug()) { -// Logger.d(TAG, Log.getStackTraceString(new Throwable())); -// } -// Logger.d( TAG, "setPointToCenter(%s, %s)", mapCenterX, mapCenterY ); -// mMapView.getMapAutoViewHelper().setPointToCenter( ( float ) mapCenterX, ( float ) mapCenterY ); + Logger.d( TAG, "setPointToCenter(%s, %s)", mapCenterX, mapCenterY ); + mMapView.getMapAutoViewHelper().setPointToCenter( ( float ) mapCenterX, ( float ) mapCenterY ); } } @@ -658,7 +662,21 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca sysLocation.setAltitude( location.getAltitude() ); sysLocation.setLatitude( location.getLat() ); sysLocation.setLongitude( location.getLon() ); + sysLocation.setProvider( location.getProvider() ); + sysLocation.setAccuracy( location.getAcceleration() ); + sysLocation.setTime( location.getDuration() ); + sysLocation.setBearing( location.getHeading() ); sysLocation.setSpeed( location.getSpeed() ); + + if ( sysLocation.getSpeed() > 0 ) { + mLastDriveLocationShadow = sysLocation; + } else { + if ( ( int ) sysLocation.getBearing() == 0 + && mLastDriveLocationShadow != null ) { + // TODO: 2020/12/12 停车时自车图标方向调整 + } + } + NaviClient.getInstance( getContext() ).syncCarLocation( sysLocation ); } @@ -741,4 +759,11 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca public void emphasizeMyLocation() { } + + @Override + public void onChangeMapStyle( int i ) { + if ( i == MapParams.MAP_STYLE_VR ) { + MogoMapListenerHandler.getInstance().onMapModeChanged( EnumMapUI.Type_VR ); + } + } } diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java new file mode 100644 index 0000000000..758e7dd74c --- /dev/null +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapApiBuilder.java @@ -0,0 +1,128 @@ +package com.mogo.map.impl.custom; + +import android.content.Context; + +import com.alibaba.android.arouter.facade.annotation.Route; +import com.mogo.map.IMogoMapApiBuilder; +import com.mogo.map.IMogoMapView; +import com.mogo.map.MapApiPath; +import com.mogo.map.impl.custom.location.ALocationClient; +import com.mogo.map.impl.custom.navi.NaviClient; +import com.mogo.map.impl.custom.search.GeocodeSearchClient; +import com.mogo.map.impl.custom.search.InputtipsSearch; +import com.mogo.map.impl.custom.search.PoiSearchClient; +import com.mogo.map.impl.custom.search.RoadSearchClient; +import com.mogo.map.impl.custom.uicontroller.AMapUIController; +import com.mogo.map.impl.custom.utils.IconTypeUtils; +import com.mogo.map.location.IMogoLocationClient; +import com.mogo.map.navi.IMogoAimless; +import com.mogo.map.navi.IMogoNavi; +import com.mogo.map.search.drive.IMogoRoadSearch; +import com.mogo.map.search.geo.IMogoGeoSearch; +import com.mogo.map.search.inputtips.IMogoInputtipsSearch; +import com.mogo.map.search.inputtips.query.MogoInputtipsQuery; +import com.mogo.map.search.poisearch.IMogoPoiSearch; +import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery; +import com.mogo.map.search.traffic.IMogoTrafficSearch; +import com.mogo.map.uicontroller.IMogoMapUIController; +import com.mogo.utils.logger.Logger; +import com.zhidaoauto.map.sdk.open.MapAutoApi; +import com.zhidaoauto.map.sdk.open.MapParams; +import com.zhidaoauto.map.sdk.open.NavAutoApi; +import com.zhidaoauto.map.sdk.open.NavParams; +import com.zhidaoauto.map.sdk.open.view.MapAutoView; + +public +/** + * @author congtaowang + * @since 2020/12/9 + * + * 描述 + */ +@Route( path = MapApiPath.PATH ) +class CustomMapApiBuilder implements IMogoMapApiBuilder { + + private static final String TAG = "CustomMapApiBuilder"; + + @Override + public IMogoGeoSearch getGeoSearch( Context context ) { + return new GeocodeSearchClient( context ); + } + + @Override + public IMogoInputtipsSearch getInputtipsSearch( Context context, MogoInputtipsQuery query ) { + return new InputtipsSearch( context, query ); + } + + @Override + public IMogoLocationClient getLocationClient( Context context ) { + return new ALocationClient( context ); + } + + @Override + public IMogoMapUIController getMapUIController() { + return AMapUIController.getInstance(); + } + + @Override + public IMogoNavi getNavi( Context context ) { + return NaviClient.getInstance( context ); + } + + @Override + public IMogoPoiSearch getPoiSearchClient( Context context, MogoPoiSearchQuery query ) { + return new PoiSearchClient( context, query ); + } + + @Override + public IMogoRoadSearch getRoadSearch() { + return new RoadSearchClient(); + } + + @Override + public IMogoAimless getAimless( Context context ) { + return null; + } + + @Override + public void createMapView( Context context ) { + // do not implements. + } + + @Override + public IMogoMapView getMapView( Context context ) { + NavAutoApi.INSTANCE.init( context, MapParams.Companion.init() +// .setCachePath( "sdcard/tiles_vr" ) + .setStyleDir( "sdcard/shmdata_asset/mogo_style" ) + .setHdmapPath( "sdcard/shmdata/hdmapData" ) + .setDebugMode( true ) + .setCoordinateType( MapParams.COORDINATETYPE_GCJ02 ) + .setPerspectiveMode( MapParams.MAP_PERSPECTIVE_2D ) + .setZoom( 16 ) + .setPointToCenter( 0.5f, 0.8f ) + .setStyleMode( MapParams.MAP_STYLE_NIGHT ) , NavParams.Companion.init() ); + MapAutoView mapAutoView = new MapAutoView( context ); + IMogoMapView mapView = new AMapViewWrapper( mapAutoView ); + return mapView; + } + + @Override + public IMogoTrafficSearch getTrafficSearch() { + return null; + } + + @Override + public void destroy() { + + } + + @Override + public int getResIdByIconType( Context context, int iconType ) { + return IconTypeUtils.getResIdByIconType( context, iconType ); + } + + @Override + public void init( Context context ) { + Logger.d( TAG, "init" ); + } +} diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapView.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapView.java index efb1b653eb..cd00b35f7c 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapView.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/CustomMapView.java @@ -24,12 +24,13 @@ public class CustomMapView implements IMogoMapViewCreator { @Override public IMogoMapView create( Context context ) { if ( mapView == null ) { - MapAutoApi.INSTANCE.init( context, MapParams.Companion.init().setDebugMode( false ) + MapAutoApi.INSTANCE.init( context, MapParams.Companion.init() + .setCachePath( "sdcard/tiles_vr" ) + .setDebugMode( false ) .setCoordinateType( MapParams.COORDINATETYPE_GCJ02 ) .setPerspectiveMode( MapParams.MAP_PERSPECTIVE_2D ) .setZoom( 16 ) - .setPointToCenter( 0.5f, 0.8f ) - .setStyleMode( MapParams.MAP_STYLE_VR ) ); + .setPointToCenter( 0.5f, 0.8f ) ); } MapAutoView mapAutoView = new MapAutoView( context ); mapView = new AMapViewWrapper( mapAutoView ); diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/IconTypeUtils.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/IconTypeUtils.java index dc243f78e4..7f2dc1353e 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/IconTypeUtils.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/IconTypeUtils.java @@ -12,64 +12,125 @@ import android.util.SparseArray; */ public class IconTypeUtils { + public class IconType { + public static final int NONE = 0; + public static final int DEFAULT = 1; + public static final int LEFT = 2; + public static final int RIGHT = 3; + public static final int LEFT_FRONT = 4; + public static final int RIGHT_FRONT = 5; + public static final int LEFT_BACK = 6; + public static final int RIGHT_BACK = 7; + public static final int LEFT_TURN_AROUND = 8; + public static final int STRAIGHT = 9; + public static final int ARRIVED_WAYPOINT = 10; + public static final int ENTER_ROUNDABOUT = 11; + public static final int OUT_ROUNDABOUT = 12; + public static final int ARRIVED_SERVICE_AREA = 13; + public static final int ARRIVED_TOLLGATE = 14; + public static final int ARRIVED_DESTINATION = 15; + public static final int ARRIVED_TUNNEL = 16; + public static final int ENTRY_LEFT_RING = 17; + public static final int LEAVE_LEFT_RING = 18; + public static final int U_TURN_RIGHT = 19; + public static final int SPECIAL_CONTINUE = 20; + public static final int ENTRY_RING_LEFT = 21; + public static final int ENTRY_RING_RIGHT = 22; + public static final int ENTRY_RING_CONTINUE = 23; + public static final int ENTRY_RING_UTURN = 24; + public static final int ENTRY_LEFT_RING_LEFT = 25; + public static final int ENTRY_LEFT_RING_RIGHT = 26; + public static final int ENTRY_LEFT_RING_CONTINUE = 27; + public static final int ENTRY_LEFTRINGU_TURN = 28; + public static final int CROSSWALK = 29; + public static final int OVERPASS = 30; + public static final int UNDERPASS = 31; + public static final int SQUARE = 32; + public static final int PARK = 33; + public static final int STAIRCASE = 34; + public static final int LIFT = 35; + public static final int CABLEWAY = 36; + public static final int SKY_CHANNEL = 37; + public static final int CHANNEL = 38; + public static final int WALK_ROAD = 39; + public static final int CRUISE_ROUTE = 40; + public static final int SIGHTSEEING_BUSLINE = 41; + public static final int SLIDEWAY = 42; + public static final int LADDER = 43; + public static final int SLOPE = 44; + public static final int BRIDGE = 45; + public static final int FERRY = 46; + public static final int SUBWAY = 47; + public static final int ENTER_BUILDING = 48; + public static final int LEAVE_BUILDING = 49; + public static final int BY_ELEVATOR = 50; + public static final int BY_STAIR = 51; + public static final int BY_ESCALATOR = 52; + public static final int LOW_TRAFFIC_CROSS = 53; + public static final int LOW_CROSS = 54; + + public IconType() { + } + } + private static SparseArray< String > sIconName = new SparseArray<>(); static { -// sIconName.put( IconType.ARRIVED_DESTINATION, "到达目的地" ); -// sIconName.put( IconType.ARRIVED_SERVICE_AREA, "到达服务区" ); -// sIconName.put( IconType.ARRIVED_TOLLGATE, "到达收费站" ); -// sIconName.put( IconType.ARRIVED_TUNNEL, "到达隧道" ); -// sIconName.put( IconType.ARRIVED_WAYPOINT, "到达途经点" ); -// sIconName.put( IconType.BRIDGE, "通过桥" ); -// sIconName.put( IconType.BY_ELEVATOR, "电梯换层" ); -// sIconName.put( IconType.BY_ESCALATOR, "扶梯换层" ); -// sIconName.put( IconType.BY_STAIR, "楼梯换层" ); -// sIconName.put( IconType.CABLEWAY, "通过索道" ); -// sIconName.put( IconType.CHANNEL, "通过通道" ); -// sIconName.put( IconType.CROSSWALK, "通过人行横道" ); -// sIconName.put( IconType.CRUISE_ROUTE, "通过游船路线" ); -// sIconName.put( IconType.DEFAULT, "自车" ); -// sIconName.put( IconType.ENTER_BUILDING, "进入建筑物" ); -// sIconName.put( IconType.ENTER_ROUNDABOUT, "进入环岛" ); -// sIconName.put( IconType.ENTRY_LEFT_RING, "进入环岛" ); -// sIconName.put( IconType.ENTRY_LEFT_RING_CONTINUE, "绕环岛直行" ); -// sIconName.put( IconType.ENTRY_LEFT_RING_LEFT, "绕环岛左转" ); -// sIconName.put( IconType.ENTRY_LEFT_RING_RIGHT, "绕环岛右转" ); -// sIconName.put( IconType.ENTRY_LEFTRINGU_TURN, "绕环岛调头" ); -// sIconName.put( IconType.ENTRY_RING_CONTINUE, "绕环岛直行" ); -// sIconName.put( IconType.ENTRY_RING_LEFT, "绕环岛左转" ); -// sIconName.put( IconType.ENTRY_RING_RIGHT, "绕环岛右转" ); -// sIconName.put( IconType.ENTRY_RING_UTURN, "绕环岛调头" ); -// sIconName.put( IconType.FERRY, "通过轮渡" ); -// sIconName.put( IconType.LADDER, "通过阶梯" ); -// sIconName.put( IconType.LEAVE_BUILDING, "离开建筑物" ); -// sIconName.put( IconType.LEAVE_LEFT_RING, "驶出环岛" ); -// sIconName.put( IconType.LEFT, "左转" ); -// sIconName.put( IconType.LEFT_BACK, "左后" ); -// sIconName.put( IconType.LEFT_FRONT, "左前方" ); -// sIconName.put( IconType.LEFT_TURN_AROUND, "左转掉头" ); -// sIconName.put( IconType.LIFT, "通过直梯" ); -// sIconName.put( IconType.LOW_CROSS, "通过普通路口" ); -// sIconName.put( IconType.LOW_TRAFFIC_CROSS, "红绿灯路口" ); -// sIconName.put( IconType.NONE, "无定义" ); -// sIconName.put( IconType.OUT_ROUNDABOUT, "驶出环岛" ); -// sIconName.put( IconType.OVERPASS, "通过过街天桥" ); -// sIconName.put( IconType.PARK, "通过公园" ); -// sIconName.put( IconType.RIGHT, "右转" ); -// sIconName.put( IconType.RIGHT_BACK, "右后方" ); -// sIconName.put( IconType.RIGHT_FRONT, "右前方" ); -// sIconName.put( IconType.SIGHTSEEING_BUSLINE, "通过观光车路线" ); -// sIconName.put( IconType.SKY_CHANNEL, "通过空中通道" ); -// sIconName.put( IconType.SLIDEWAY, "通过滑道" ); -// sIconName.put( IconType.SLOPE, "通过斜坡" ); -// sIconName.put( IconType.SPECIAL_CONTINUE, "顺行" ); -// sIconName.put( IconType.SQUARE, "通过广场" ); -// sIconName.put( IconType.STAIRCASE, "通过扶梯" ); -// sIconName.put( IconType.STRAIGHT, "直行" ); -// sIconName.put( IconType.SUBWAY, "通过地铁通道" ); -// sIconName.put( IconType.U_TURN_RIGHT, "右转掉头" ); -// sIconName.put( IconType.UNDERPASS, "通过地下通道" ); -// sIconName.put( IconType.WALK_ROAD, "通过行人道路" ); + sIconName.put( IconType.ARRIVED_DESTINATION, "到达目的地" ); + sIconName.put( IconType.ARRIVED_SERVICE_AREA, "到达服务区" ); + sIconName.put( IconType.ARRIVED_TOLLGATE, "到达收费站" ); + sIconName.put( IconType.ARRIVED_TUNNEL, "到达隧道" ); + sIconName.put( IconType.ARRIVED_WAYPOINT, "到达途经点" ); + sIconName.put( IconType.BRIDGE, "通过桥" ); + sIconName.put( IconType.BY_ELEVATOR, "电梯换层" ); + sIconName.put( IconType.BY_ESCALATOR, "扶梯换层" ); + sIconName.put( IconType.BY_STAIR, "楼梯换层" ); + sIconName.put( IconType.CABLEWAY, "通过索道" ); + sIconName.put( IconType.CHANNEL, "通过通道" ); + sIconName.put( IconType.CROSSWALK, "通过人行横道" ); + sIconName.put( IconType.CRUISE_ROUTE, "通过游船路线" ); + sIconName.put( IconType.DEFAULT, "自车" ); + sIconName.put( IconType.ENTER_BUILDING, "进入建筑物" ); + sIconName.put( IconType.ENTER_ROUNDABOUT, "进入环岛" ); + sIconName.put( IconType.ENTRY_LEFT_RING, "进入环岛" ); + sIconName.put( IconType.ENTRY_LEFT_RING_CONTINUE, "绕环岛直行" ); + sIconName.put( IconType.ENTRY_LEFT_RING_LEFT, "绕环岛左转" ); + sIconName.put( IconType.ENTRY_LEFT_RING_RIGHT, "绕环岛右转" ); + sIconName.put( IconType.ENTRY_LEFTRINGU_TURN, "绕环岛调头" ); + sIconName.put( IconType.ENTRY_RING_CONTINUE, "绕环岛直行" ); + sIconName.put( IconType.ENTRY_RING_LEFT, "绕环岛左转" ); + sIconName.put( IconType.ENTRY_RING_RIGHT, "绕环岛右转" ); + sIconName.put( IconType.ENTRY_RING_UTURN, "绕环岛调头" ); + sIconName.put( IconType.FERRY, "通过轮渡" ); + sIconName.put( IconType.LADDER, "通过阶梯" ); + sIconName.put( IconType.LEAVE_BUILDING, "离开建筑物" ); + sIconName.put( IconType.LEAVE_LEFT_RING, "驶出环岛" ); + sIconName.put( IconType.LEFT, "左转" ); + sIconName.put( IconType.LEFT_BACK, "左后" ); + sIconName.put( IconType.LEFT_FRONT, "左前方" ); + sIconName.put( IconType.LEFT_TURN_AROUND, "左转掉头" ); + sIconName.put( IconType.LIFT, "通过直梯" ); + sIconName.put( IconType.LOW_CROSS, "通过普通路口" ); + sIconName.put( IconType.LOW_TRAFFIC_CROSS, "红绿灯路口" ); + sIconName.put( IconType.NONE, "无定义" ); + sIconName.put( IconType.OUT_ROUNDABOUT, "驶出环岛" ); + sIconName.put( IconType.OVERPASS, "通过过街天桥" ); + sIconName.put( IconType.PARK, "通过公园" ); + sIconName.put( IconType.RIGHT, "右转" ); + sIconName.put( IconType.RIGHT_BACK, "右后方" ); + sIconName.put( IconType.RIGHT_FRONT, "右前方" ); + sIconName.put( IconType.SIGHTSEEING_BUSLINE, "通过观光车路线" ); + sIconName.put( IconType.SKY_CHANNEL, "通过空中通道" ); + sIconName.put( IconType.SLIDEWAY, "通过滑道" ); + sIconName.put( IconType.SLOPE, "通过斜坡" ); + sIconName.put( IconType.SPECIAL_CONTINUE, "顺行" ); + sIconName.put( IconType.SQUARE, "通过广场" ); + sIconName.put( IconType.STAIRCASE, "通过扶梯" ); + sIconName.put( IconType.STRAIGHT, "直行" ); + sIconName.put( IconType.SUBWAY, "通过地铁通道" ); + sIconName.put( IconType.U_TURN_RIGHT, "右转掉头" ); + sIconName.put( IconType.UNDERPASS, "通过地下通道" ); + sIconName.put( IconType.WALK_ROAD, "通过行人道路" ); } private static int lastIconType = 0; diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java index b8f9f9b1ac..a3a6101a24 100644 --- a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java +++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/utils/ObjectUtils.java @@ -59,12 +59,12 @@ import java.util.List; */ public class ObjectUtils { - public static MarkerOptions fromMogo(MogoMarkerOptions opt ) { + public static MarkerOptions fromMogo( MogoMarkerOptions opt ) { if ( opt == null ) { return null; } - ArrayList descriptors = new ArrayList<>(); + ArrayList< BitmapDescriptor > descriptors = new ArrayList<>(); final ArrayList< Bitmap > icons = opt.getIcons(); if ( icons != null && !icons.isEmpty() ) { for ( Bitmap icon : icons ) { @@ -72,14 +72,14 @@ public class ObjectUtils { continue; } - descriptors.add( new BitmapDescriptor(icon) ); + descriptors.add( new BitmapDescriptor( icon ) ); } } BitmapDescriptor descriptor = getBitmapDescriptorFromMogo( opt ); - MarkerOptions markerOptions = new MarkerOptions() - .position( new LonLatPoint(opt.getLongitude(), opt.getLatitude() ) ) - .markerIcon(descriptor ) + MarkerOptions markerOptions = new MarkerOptions() + .position( new LonLatPoint( opt.getLongitude(), opt.getLatitude() ) ) + .markerIcon( descriptor ) .anchor( opt.getU(), opt.getV() ) // .icons( descriptors ) // .period( opt.getPeriod() ) @@ -92,11 +92,11 @@ public class ObjectUtils { // .draggable( opt.isDraggable() ) .setInfoWindowOffset( opt.getOffsetX(), opt.getOffsetY() ) .zIndex( opt.getzIndex() ); - if(!TextUtils.isEmpty(opt.getTitle())){ - markerOptions.title(opt.getTitle()); + if ( !TextUtils.isEmpty( opt.getTitle() ) ) { + markerOptions.title( opt.getTitle() ); } - if(!TextUtils.isEmpty(opt.getSnippet())){ - markerOptions.snippet(opt.getSnippet()); + if ( !TextUtils.isEmpty( opt.getSnippet() ) ) { + markerOptions.snippet( opt.getSnippet() ); } return markerOptions; } @@ -155,7 +155,7 @@ public class ObjectUtils { if ( latLng == null ) { return null; } - return new LonLatPoint( latLng.lon,latLng.lat); + return new LonLatPoint( latLng.lon, latLng.lat ); } // public static NaviLatLng fromMogoAsNavi( MogoLatLng latLng ) { @@ -194,7 +194,7 @@ public class ObjectUtils { return q; } - public static RegeocodeQuery fromMogo(MogoRegeocodeQuery query ) { + public static RegeocodeQuery fromMogo( MogoRegeocodeQuery query ) { if ( query == null ) { return null; } @@ -264,7 +264,7 @@ public class ObjectUtils { } MogoGeocodeResult mogoGeocodeResult = new MogoGeocodeResult(); final List< MogoGeocodeAddress > addresses = new ArrayList<>(); - List< GeocodeAddress > list = result.getGeocodeAddressList(); + List< GeocodeAddress > list = result.getGeocodeAddressList(); for ( GeocodeAddress geocodeAddress : list ) { final MogoGeocodeAddress mogoGeocodeAddress = fromAMap( geocodeAddress ); if ( mogoGeocodeAddress != null ) { @@ -348,7 +348,7 @@ public class ObjectUtils { // return mogoSubPoiItem; // } - public static MogoPoiItem fromAMap( PoiItem poiItem) { + public static MogoPoiItem fromAMap( PoiItem poiItem ) { if ( poiItem == null ) { return null; } @@ -450,7 +450,7 @@ public class ObjectUtils { mogoRegeocodeAddress.setNeighborhood( regeocodeAddress.getNeighborhood() ); if ( regeocodeAddress.getPoiList() != null ) { List< MogoPoiItem > mogoPoiItems = new ArrayList<>(); - List list = regeocodeAddress.getPoiList(); + List< PoiItem > list = regeocodeAddress.getPoiList(); for ( PoiItem pois : list ) { MogoPoiItem mogoPoiItem = fromAMap( pois ); mogoPoiItems.add( mogoPoiItem ); @@ -483,7 +483,7 @@ public class ObjectUtils { return mogoRegeocodeResult; } - public static InputtipsQuery fromMogo(MogoInputtipsQuery query ) { + public static InputtipsQuery fromMogo( MogoInputtipsQuery query ) { if ( query == null ) { return null; } @@ -534,14 +534,14 @@ public class ObjectUtils { return mogoPoiSearchQuery; } - public static Query fromMogo(MogoPoiSearchQuery query ) { - if ( query == null || query.getQuery() == null) { + public static Query fromMogo( MogoPoiSearchQuery query ) { + if ( query == null || query.getQuery() == null ) { return null; } - Query psq = new Query(query.getQuery(), "", ""); - String category = getCategory(query.getQuery()); - if(!category.equals("")) - psq = new Query( "", "", getCategory(query.getQuery())); + Query psq = new Query( query.getQuery(), "", "" ); + String category = getCategory( query.getQuery() ); + if ( !category.equals( "" ) ) + psq = new Query( "", "", getCategory( query.getQuery() ) ); // psq.setBuilding( query.getBuilding() ); psq.setCityLimit( query.isCityLimit() ); psq.setDistanceSort( query.isDistanceSort() ); @@ -608,7 +608,7 @@ public class ObjectUtils { } MogoPoiResult mogoPoiResult = new MogoPoiResult(); if ( result.getItems() != null ) { - final List poiItems = result.getItems(); + final List< PoiSearchItem > poiItems = result.getItems(); final ArrayList< MogoPoiItem > mogoPoiItems = new ArrayList<>( poiItems.size() ); for ( PoiSearchItem poiItem : poiItems ) { mogoPoiItems.add( fromAMap( poiItem.getPoi() ) ); @@ -692,7 +692,7 @@ public class ObjectUtils { // return null; // } - public static PolylineOptions fromMogo(MogoPolylineOptions options ) { + public static PolylineOptions fromMogo( MogoPolylineOptions options ) { if ( options == null ) { return null; } @@ -705,11 +705,11 @@ public class ObjectUtils { target.setLonLatPoints( points ); } target.setLineWidth( options.getWidth() ); - target.setColor( options.getColor() ); + target.setColor( options.getColor()); // target.zIndex( options.getWidth() ); // target.visible( options.isVisible() ); //// target.geodesic( options.isGeodesic() ); - target.setDottedLine( options.isDottedLine() ); +// target.setDottedLine( options.isDottedLine() ); target.useGradient( options.isGradient() ); if ( options.getColorValues() != null ) { target.colorValues( options.getColorValues() ); @@ -736,17 +736,17 @@ public class ObjectUtils { return new MapCameraPosition( fromAMap( position.getTarget() ), position.getBearing(), position.getTilt(), position.getZoom() ); } - private static String getCategory(String key){ + private static String getCategory( String key ) { String category = ""; - if(key.equals("加油站")){ - category= "6"; - }else if(key.equals("停车场")){ - category= "12"; - }else if(key.equals("餐馆")){ - category= "22"; - }else if(key.equals("洗车")){ - category= "8"; - }else if(key.equals("厕所")){ + if ( key.equals( "加油站" ) ) { + category = "6"; + } else if ( key.equals( "停车场" ) ) { + category = "12"; + } else if ( key.equals( "餐馆" ) ) { + category = "22"; + } else if ( key.equals( "洗车" ) ) { + category = "8"; + } else if ( key.equals( "厕所" ) ) { } return category; diff --git a/libraries/map-custom/src/main/res/values-xhdpi/dimens.xml b/libraries/map-custom/src/main/res/values-xhdpi/dimens.xml new file mode 100644 index 0000000000..e296400581 --- /dev/null +++ b/libraries/map-custom/src/main/res/values-xhdpi/dimens.xml @@ -0,0 +1,6 @@ + + + 360px + 63px + 96px + \ No newline at end of file diff --git a/libraries/map-custom/src/main/res/values/dimens.xml b/libraries/map-custom/src/main/res/values/dimens.xml index e8bccfa287..5c0178abb7 100644 --- a/libraries/map-custom/src/main/res/values/dimens.xml +++ b/libraries/map-custom/src/main/res/values/dimens.xml @@ -1,4 +1,7 @@ 60px + 36px + 53px + 194px \ No newline at end of file diff --git a/libraries/mogo-map-api/build.gradle b/libraries/mogo-map-api/build.gradle index cac5399ae1..a705aa2206 100644 --- a/libraries/mogo-map-api/build.gradle +++ b/libraries/mogo-map-api/build.gradle @@ -31,6 +31,7 @@ dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation rootProject.ext.dependencies.androidxappcompat + api rootProject.ext.dependencies.arouter if (Boolean.valueOf(RELEASE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMapApiBuilder.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMapApiBuilder.java new file mode 100644 index 0000000000..ac404dbdf7 --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMapApiBuilder.java @@ -0,0 +1,52 @@ +package com.mogo.map; + +import android.content.Context; + +import com.alibaba.android.arouter.facade.template.IProvider; +import com.mogo.map.location.IMogoLocationClient; +import com.mogo.map.navi.IMogoAimless; +import com.mogo.map.navi.IMogoNavi; +import com.mogo.map.search.drive.IMogoRoadSearch; +import com.mogo.map.search.geo.IMogoGeoSearch; +import com.mogo.map.search.inputtips.IMogoInputtipsSearch; +import com.mogo.map.search.inputtips.query.MogoInputtipsQuery; +import com.mogo.map.search.poisearch.IMogoPoiSearch; +import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery; +import com.mogo.map.search.traffic.IMogoTrafficSearch; +import com.mogo.map.uicontroller.IMogoMapUIController; + +public +/** + * @author congtaowang + * @since 2020/12/9 + * + * 地图实例构建 + */ +interface IMogoMapApiBuilder extends IProvider { + + IMogoGeoSearch getGeoSearch( Context context ); + + IMogoInputtipsSearch getInputtipsSearch( Context context, MogoInputtipsQuery query ); + + IMogoLocationClient getLocationClient( Context context ); + + IMogoMapUIController getMapUIController(); + + IMogoNavi getNavi( Context context ); + + IMogoPoiSearch getPoiSearchClient( Context context, MogoPoiSearchQuery query ); + + IMogoRoadSearch getRoadSearch(); + + IMogoAimless getAimless( Context context ); + + void createMapView( Context context ); + + void destroy(); + + IMogoMapView getMapView( Context context ); + + IMogoTrafficSearch getTrafficSearch(); + + int getResIdByIconType( Context context, int iconType ); +} diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/MapApiPath.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/MapApiPath.java new file mode 100644 index 0000000000..b1f2871a88 --- /dev/null +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/MapApiPath.java @@ -0,0 +1,13 @@ +package com.mogo.map; + +public +/** + * @author congtaowang + * @since 2020/12/9 + * + * 描述 + */ +class MapApiPath { + + public static final String PATH = "/mogomap/api"; +} diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoBaseMapView.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoBaseMapView.java index f246b62a0e..158e2b1d50 100644 --- a/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoBaseMapView.java +++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/MogoBaseMapView.java @@ -20,9 +20,6 @@ public abstract class MogoBaseMapView extends FrameLayout implements ILifeCycle protected IMogoMapView mMapView; - protected IMogoMapView mAMapView; - protected IMogoMapView mCustomMapView; - public MogoBaseMapView( Context context ) { this( context, null ); } @@ -37,14 +34,10 @@ public abstract class MogoBaseMapView extends FrameLayout implements ILifeCycle } private void init( Context context ) { - addDleMaps(); + addMapView( context ); } - protected abstract void addDleMaps(); - - public abstract void display2DMap( boolean invokeCreateAuto, boolean invokeResumeAuto ); - - public abstract void displayVRMap( boolean invokeCreateAuto, boolean invokeResumeAuto ); + protected abstract void addMapView( Context context ); @Override public void onCreate( Bundle bundle ) { diff --git a/libraries/mogo-map/build.gradle b/libraries/mogo-map/build.gradle index bb41e9c25d..c9c9969d4c 100644 --- a/libraries/mogo-map/build.gradle +++ b/libraries/mogo-map/build.gradle @@ -24,19 +24,17 @@ android { dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.arouter + implementation rootProject.ext.dependencies.callchatprovider if (Boolean.valueOf(RELEASE)) { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogomapapi - api rootProject.ext.dependencies.mapamap - api rootProject.ext.dependencies.mapcustom api rootProject.ext.dependencies.mapautomap implementation rootProject.ext.dependencies.mogocommons } else { implementation project(':foudations:mogo-utils') implementation project(':libraries:mogo-map-api') - api project(':libraries:map-amap') - api project(':libraries:map-custom') api project(':libraries:map-autonavi') implementation project(':foudations:mogo-commons') } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoAimless.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoAimless.java index 31aba24a1a..f4acdd881e 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoAimless.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoAimless.java @@ -2,9 +2,7 @@ package com.mogo.map; import android.content.Context; -import com.mogo.map.impl.amap.navi.AimlessClient; import com.mogo.map.navi.IMogoAimless; -import com.mogo.map.navi.IMogoNavi; /** * @author donghongyu @@ -18,15 +16,15 @@ public class MogoAimless implements IMogoAimless { private static volatile MogoAimless sInstance; - private MogoAimless(Context context) { - mDelegate = AimlessClient.getInstance(context); + private MogoAimless( Context context ) { + mDelegate = MogoMapDelegateFactory.getAimless( context ); } - public static MogoAimless getInstance(Context context) { - if (sInstance == null) { - synchronized (MogoAimless.class) { - if (sInstance == null) { - sInstance = new MogoAimless(context); + public static MogoAimless getInstance( Context context ) { + if ( sInstance == null ) { + synchronized ( MogoAimless.class ) { + if ( sInstance == null ) { + sInstance = new MogoAimless( context ); } } } @@ -39,22 +37,22 @@ public class MogoAimless implements IMogoAimless { @Override public void startAimlessMode() { - if (mDelegate != null) { + if ( mDelegate != null ) { mDelegate.startAimlessMode(); } } @Override public void stopAimlessMode() { - if (mDelegate != null) { + if ( mDelegate != null ) { mDelegate.stopAimlessMode(); } } @Override - public void setAimlessModeStatus(boolean open) { - if (mDelegate != null) { - mDelegate.setAimlessModeStatus(open); + public void setAimlessModeStatus( boolean open ) { + if ( mDelegate != null ) { + mDelegate.setAimlessModeStatus( open ); } } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoGeoSearch.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoGeoSearch.java index 5c63cf11cd..d78942bbd4 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoGeoSearch.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoGeoSearch.java @@ -3,7 +3,6 @@ package com.mogo.map; import android.content.Context; import com.mogo.map.exception.MogoMapException; -import com.mogo.map.impl.amap.search.GeocodeSearchClient; import com.mogo.map.search.geo.IMogoGeoSearch; import com.mogo.map.search.geo.IMogoGeoSearchListener; import com.mogo.map.search.geo.MogoGeocodeAddress; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoInputtipsSearch.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoInputtipsSearch.java index 2db7f2df93..86ef7414f1 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoInputtipsSearch.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoInputtipsSearch.java @@ -2,7 +2,6 @@ package com.mogo.map; import android.content.Context; -import com.mogo.map.impl.amap.search.InputtipsSearch; import com.mogo.map.search.inputtips.IMogoInputtipsListener; import com.mogo.map.search.inputtips.IMogoInputtipsSearch; import com.mogo.map.search.inputtips.query.MogoInputtipsQuery; 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 index 93ea5ea25a..19e67dab43 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoLocationClient.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoLocationClient.java @@ -2,8 +2,6 @@ package com.mogo.map; import android.content.Context; -import com.mogo.map.impl.amap.location.ALocationClient; -import com.mogo.map.listener.MogoHosListenerRegister; import com.mogo.map.location.IMogoLocationClient; import com.mogo.map.location.IMogoLocationListener; import com.mogo.map.location.MogoLocation; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapDelegateFactory.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapDelegateFactory.java index da5bbc7121..98cdb28c31 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapDelegateFactory.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapDelegateFactory.java @@ -1,18 +1,12 @@ package com.mogo.map; import android.content.Context; -import android.opengl.Visibility; +import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.debug.DebugConfig; -import com.mogo.map.impl.amap.location.ALocationClient; -import com.mogo.map.impl.amap.navi.NaviClient; -import com.mogo.map.impl.amap.search.GeocodeSearchClient; -import com.mogo.map.impl.amap.search.InputtipsSearch; -import com.mogo.map.impl.amap.search.PoiSearchClient; -import com.mogo.map.impl.amap.search.RoadSearchClient; -import com.mogo.map.impl.amap.uicontroller.AMapUIController; import com.mogo.map.impl.automap.navi.AutoNaviClient; import com.mogo.map.location.IMogoLocationClient; +import com.mogo.map.navi.IMogoAimless; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.search.drive.IMogoRoadSearch; import com.mogo.map.search.geo.IMogoGeoSearch; @@ -20,9 +14,9 @@ import com.mogo.map.search.inputtips.IMogoInputtipsSearch; import com.mogo.map.search.inputtips.query.MogoInputtipsQuery; import com.mogo.map.search.poisearch.IMogoPoiSearch; import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery; +import com.mogo.map.search.traffic.IMogoTrafficSearch; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.utils.AppUtils; -import com.mogo.utils.logger.Logger; /** * @author congtaowang @@ -34,72 +28,109 @@ class MogoMapDelegateFactory { private static final String TAG = "MogoMapDelegateFactory"; - private static boolean useCustom = false; +// private static boolean useCustom = false; +// +// public static boolean isUseCustom() { +// return useCustom; +// } - public static boolean isUseCustom() { - return useCustom; + private static IMogoMapApiBuilder sApiBuilder; + + private static IMogoMapApiBuilder getApiBuilder() { + if ( sApiBuilder == null ) { + synchronized ( MogoMapDelegateFactory.class ) { + if ( sApiBuilder == null ) { + sApiBuilder = ARouter.getInstance().navigation( IMogoMapApiBuilder.class ); + } + } + } + return sApiBuilder; } public static IMogoGeoSearch getGeoSearchDelegate( Context context ) { - if ( useCustom ) { - Logger.d( TAG, "use custom IMogoGeoSearch" ); - return new com.mogo.map.impl.custom.search.GeocodeSearchClient( context ); - } - return new GeocodeSearchClient( context ); + return getApiBuilder().getGeoSearch( context ); +// if ( useCustom ) { +// Logger.d( TAG, "use custom IMogoGeoSearch" ); +// return new com.mogo.map.impl.custom.search.GeocodeSearchClient( context ); +// } +// return new com.mogo.map.impl.amap.search.GeocodeSearchClient( context ); } public static IMogoInputtipsSearch getInputtipsSearchDelegate( Context context, MogoInputtipsQuery query ) { - if ( useCustom ) { - Logger.d( TAG, "use custom IMogoInputtipsSearch" ); - return new com.mogo.map.impl.custom.search.InputtipsSearch( context, query ); - } - return new InputtipsSearch( context, query ); + return getApiBuilder().getInputtipsSearch( context, query ); +// if ( useCustom ) { +// Logger.d( TAG, "use custom IMogoInputtipsSearch" ); +// return new com.mogo.map.impl.custom.search.InputtipsSearch( context, query ); +// } +// return new com.mogo.map.impl.amap.search.InputtipsSearch( context, query ); } public static IMogoLocationClient getLocationClientDelegate( Context context ) { - if ( useCustom ) { - Logger.d( TAG, "use custom IMogoLocationClient" ); - return new com.mogo.map.impl.custom.location.ALocationClient( context ); - } - return new ALocationClient( context ); + return getApiBuilder().getLocationClient( context ); +// if ( useCustom ) { +// Logger.d( TAG, "use custom IMogoLocationClient" ); +// return new com.mogo.map.impl.custom.location.ALocationClient( context ); +// } +// return new com.mogo.map.impl.amap.location.ALocationClient( context ); } public static IMogoMapUIController getMapUIControllerDelegate() { - if ( useCustom ) { - Logger.d( TAG, "use custom IMogoMapUIController" ); - return com.mogo.map.impl.custom.uicontroller.AMapUIController.getInstance(); - } - return AMapUIController.getInstance(); + return getApiBuilder().getMapUIController(); +// if ( useCustom ) { +// Logger.d( TAG, "use custom IMogoMapUIController" ); +// return com.mogo.map.impl.custom.uicontroller.AMapUIController.getInstance(); +// } +// return com.mogo.map.impl.amap.uicontroller.AMapUIController.getInstance(); } public static IMogoNavi getNaviDelegate( Context context ) { if ( DebugConfig.isUseCustomNavi() ) { - return NaviClient.getInstance( context ); + return getApiBuilder().getNavi( context ); +// return com.mogo.map.impl.amap.navi.NaviClient.getInstance( context ); } else if ( AppUtils.isAppInstalled( context, "com.autonavi.amapauto" ) ) { return AutoNaviClient.getInstance( context ); - } else { - if ( useCustom ) { - Logger.d( TAG, "use custom IMogoNavi" ); - return com.mogo.map.impl.custom.navi.NaviClient.getInstance( context ); - } } - return NaviClient.getInstance( context ); + return getApiBuilder().getNavi( context ); +// return com.mogo.map.impl.amap.navi.NaviClient.getInstance( context ); } public static IMogoPoiSearch getPoiSearchClientDelegate( Context context, MogoPoiSearchQuery query ) { - if ( useCustom ) { - Logger.d( TAG, "use custom IMogoPoiSearch" ); - return new com.mogo.map.impl.custom.search.PoiSearchClient( context, query ); - } - return new PoiSearchClient( context, query ); + return getApiBuilder().getPoiSearchClient( context, query ); +// if ( useCustom ) { +// Logger.d( TAG, "use custom IMogoPoiSearch" ); +// return new com.mogo.map.impl.custom.search.PoiSearchClient( context, query ); +// } +// return new com.mogo.map.impl.amap.search.PoiSearchClient( context, query ); } public static IMogoRoadSearch getRoadSearchDelegate() { - if ( useCustom ) { - Logger.d( TAG, "use custom IMogoRoadSearch" ); - return new com.mogo.map.impl.custom.search.RoadSearchClient(); - } - return new RoadSearchClient(); + return getApiBuilder().getRoadSearch(); +// if ( useCustom ) { +// Logger.d( TAG, "use custom IMogoRoadSearch" ); +// return new com.mogo.map.impl.custom.search.RoadSearchClient(); +// } +// return new com.mogo.map.impl.amap.search.RoadSearchClient(); + } + + + public static IMogoAimless getAimless( Context context ) { + return getApiBuilder().getAimless( context ); + } + + public static void createMapViewInstance( Context context ) { + getApiBuilder().createMapView( context ); + } + + public static void destroy() { + getApiBuilder().destroy(); + } + + public static IMogoMapView getMapView( Context context ) { + return getApiBuilder().getMapView( context ); + } + + public static IMogoTrafficSearch getTrafficSearch() { + return getApiBuilder().getTrafficSearch(); } } 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 c54202d4ab..68868c9f4f 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 @@ -6,7 +6,6 @@ import android.location.Location; import android.view.View; import android.view.animation.Interpolator; -import com.mogo.map.impl.amap.uicontroller.AMapUIController; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.uicontroller.CarCursorOption; import com.mogo.map.uicontroller.EnumMapUI; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java index 594cdd4b3d..aade6ee1ed 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapView.java @@ -9,9 +9,6 @@ import android.widget.FrameLayout; import androidx.annotation.Nullable; -import com.mogo.map.impl.amap.AMapBaseMapView; -import com.mogo.map.impl.amap.uicontroller.AMapUIController; -import com.mogo.map.impl.custom.CustomMapView; import com.mogo.utils.logger.Logger; /** @@ -39,15 +36,10 @@ public class MogoMapView extends MogoBaseMapView implements ILifeCycle { private boolean mIsVrMode = false; @Override - protected void addDleMaps() { - - display2DMap( true, true ); - } - - private void addAMapView(){ - mAMapView = new AMapBaseMapView().create( getContext() ); - if ( mAMapView != null ) { - final View mapView = mAMapView.getMapView(); + protected void addMapView( Context context ) { + mMapView = MogoMapDelegateFactory.getMapView( context ); + if ( mMapView != null ) { + final View mapView = mMapView.getMapView(); if ( mapView != null ) { addView( mapView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) ); } else { @@ -58,73 +50,6 @@ public class MogoMapView extends MogoBaseMapView implements ILifeCycle { } } - private void addVrMapView(){ - mCustomMapView = new CustomMapView().create( getContext() ); - if ( mCustomMapView != null ) { - final View mapView = mCustomMapView.getMapView(); - if ( mapView != null ) { - addView( mapView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) ); - } else { - Logger.e( TAG, "create MapView instance failed." ); - } - } else { - Logger.e( TAG, "create IMogoMapView instance failed." ); - } - mCustomMapView.onCreate( null ); - } - - private void removeVrMapView(){ - try { - mCustomMapView.onDestroy(); - removeView( mCustomMapView.getMapView() ); - } catch ( Exception e ) { - e.printStackTrace(); - } - } - - private void removeAMapView(){ - try { - mAMapView.onPause(); - removeView( mAMapView.getMapView() ); - } catch ( Exception e ) { - e.printStackTrace(); - } - } - - @Override - public void display2DMap( boolean invokeCreateAuto, boolean invokeResumeAuto ) { - mIsVrMode = false; - MogoMarkerManager.getInstance( getContext() ).removeMarkers(); - removeVrMapView(); - addAMapView(); - mMapView = mAMapView; - MogoMap.getInstance().init( getContext(), mMapView.getMap() ); - MogoMapUIController.getInstance().setDelegate( AMapUIController.getInstance() ); - mAMapView.onResume(); - } - - @Override - public void displayVRMap( boolean invokeCreateAuto, boolean invokeResumeAuto ) { - mIsVrMode = true; - MogoMarkerManager.getInstance( getContext() ).removeMarkers(); - removeAMapView(); - addVrMapView(); - mMapView = mCustomMapView; - MogoMap.getInstance().init( getContext(), mMapView.getMap() ); - MogoMapUIController.getInstance().setDelegate( com.mogo.map.impl.custom.uicontroller.AMapUIController.getInstance() ); - mCustomMapView.onResume(); - post( new Runnable() { - @Override - public void run() { - try { - getMap().getUIController().showMyLocation( true ); - } catch ( Exception e ) { - e.printStackTrace(); - } - } - } ); - } - public boolean isVrMode() { return mIsVrMode; } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapViewInstanceHandler.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapViewInstanceHandler.java index b3e6bf7a2b..9433147dda 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapViewInstanceHandler.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapViewInstanceHandler.java @@ -2,8 +2,6 @@ package com.mogo.map; import android.content.Context; -import com.mogo.map.impl.amap.AMapViewHandler; - public /** * @author congtaowang @@ -39,11 +37,11 @@ class MogoMapViewInstanceHandler implements IMogoMapViewInstanceHandler { @Override public void createMapViewInstance( Context context ) { - AMapViewHandler.createMapView( context ); + MogoMapDelegateFactory.createMapViewInstance( context ); } @Override public void destroy() { - AMapViewHandler.destroy(); + MogoMapDelegateFactory.destroy(); } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java index 2d5737acc8..1222a3f4a0 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMarkerManager.java @@ -1,14 +1,11 @@ package com.mogo.map; import android.content.Context; -import android.util.Log; -import com.mogo.map.impl.amap.overlay.RouteOverlayHelper; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.IMogoMarkerManager; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.map.marker.MogoMarkersHandler; -import com.mogo.utils.logger.Logger; import java.util.ArrayList; import java.util.List; @@ -94,11 +91,11 @@ public class MogoMarkerManager implements IMogoMarkerManager { @Override public void addRouteWay( Context context, MogoLatLng startPoint, MogoLatLng endPoint, List< MogoLatLng > wayPoints ) { - RouteOverlayHelper.getInstance().addRouteWay( context, startPoint, endPoint, wayPoints ); +// RouteOverlayHelper.getInstance().addRouteWay( context, startPoint, endPoint, wayPoints ); } @Override public void removeRouteWayOverlay() { - RouteOverlayHelper.getInstance().removeAll(); +// RouteOverlayHelper.getInstance().removeAll(); } } diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java index 72a7f1c596..246cf2df56 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoNavi.java @@ -4,9 +4,6 @@ import android.content.Context; import android.graphics.Rect; import android.location.Location; -import com.mogo.commons.debug.DebugConfig; -import com.mogo.map.impl.amap.navi.NaviClient; -import com.mogo.map.impl.automap.navi.AutoNaviClient; import com.mogo.map.navi.IMogoCarLocationChangedListener2; import com.mogo.map.navi.IMogoNavi; import com.mogo.map.navi.MogoCalculatePath; @@ -14,7 +11,6 @@ import com.mogo.map.navi.MogoCarLocationChangedListenerRegister; import com.mogo.map.navi.MogoNaviConfig; import com.mogo.map.navi.MogoOperationListenerRegister; import com.mogo.map.navi.OnCalculatePathItemClickInteraction; -import com.mogo.utils.AppUtils; import java.util.List; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoPoiSearch.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoPoiSearch.java index 3e1a782a05..afba4adafa 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoPoiSearch.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoPoiSearch.java @@ -3,7 +3,6 @@ package com.mogo.map; import android.content.Context; import com.mogo.map.exception.MogoMapException; -import com.mogo.map.impl.amap.search.PoiSearchClient; import com.mogo.map.search.geo.MogoPoiItem; import com.mogo.map.search.poisearch.IMogoPoiSearch; import com.mogo.map.search.poisearch.IMogoPoiSearchListener; diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoTrafficSearch.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoTrafficSearch.java index a7cd61b6fd..4f5bc3e4c3 100644 --- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoTrafficSearch.java +++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoTrafficSearch.java @@ -1,6 +1,5 @@ package com.mogo.map; -import com.mogo.map.impl.amap.search.TrafficSearchClient; import com.mogo.map.search.traffic.IMogoTrafficSearch; import com.mogo.map.search.traffic.IMogoTrafficSearchListener; @@ -9,7 +8,7 @@ public class MogoTrafficSearch implements IMogoTrafficSearch { private IMogoTrafficSearch mDelegate; public MogoTrafficSearch() { - mDelegate = new TrafficSearchClient(); + mDelegate = MogoMapDelegateFactory.getTrafficSearch(); } @Override diff --git a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/Informations.kt b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/Informations.kt index 503f1eaf89..c2fca80dc9 100644 --- a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/Informations.kt +++ b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/Informations.kt @@ -2,12 +2,6 @@ package com.zhidao.roadcondition.model import android.os.Parcel import android.os.Parcelable -import com.amap.api.maps.model.LatLng - - -fun Informations.toLatLng(): LatLng { - return LatLng(lat, lon) -} class Informations( var type: Int, diff --git a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/LocationInfo.kt b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/LocationInfo.kt index 49daf10d0d..b63e2e56af 100644 --- a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/LocationInfo.kt +++ b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/LocationInfo.kt @@ -1,15 +1,9 @@ package com.zhidao.roadcondition.model -import com.amap.api.maps.model.LatLng -import com.amap.api.services.core.LatLonPoint +import com.mogo.map.MogoLatLng - -fun LocationInfo.toLatLng(): LatLng { - return LatLng(latitude,longitude) -} - -fun LocationInfo.toLatLngPoint():LatLonPoint{ - return LatLonPoint(latitude,longitude) +fun LocationInfo.toLatLngPoint():MogoLatLng{ + return MogoLatLng(latitude,longitude) } class LocationInfo { diff --git a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/util/LocationUtil.kt b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/util/LocationUtil.kt index 08a711e576..12e64fec27 100644 --- a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/util/LocationUtil.kt +++ b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/util/LocationUtil.kt @@ -1,47 +1,47 @@ package com.zhidao.roadcondition.util import android.util.Log -import com.amap.api.location.AMapLocation -import com.amap.api.location.AMapLocationClient -import com.amap.api.location.AMapLocationClientOption -import com.amap.api.location.AMapLocationListener -import com.amap.api.services.core.LatLonPoint -import com.amap.api.services.geocoder.* import com.mogo.commons.AbsMogoApplication +import com.mogo.map.MogoLatLng +import com.mogo.map.location.MogoLocation +import com.mogo.map.search.geo.IMogoGeoSearchListener +import com.mogo.map.search.geo.MogoRegeocodeAddress +import com.mogo.map.search.geo.MogoRegeocodeResult +import com.mogo.map.search.geo.query.MogoRegeocodeQuery +import com.mogo.module.common.MogoApisHandler import com.zhidao.roadcondition.model.LocationInfo - -private fun RegeocodeAddress.toLocInfo( - address: RegeocodeAddress, - latlngPoint: LatLonPoint +private fun MogoRegeocodeAddress.toLocInfo( + address: MogoRegeocodeAddress, + latlngPoint: MogoLatLng ): LocationInfo { return LocationInfo( - address.province, - address.city, - address.cityCode, - address.district, - address.adCode, - address.roads[0].name, - latlngPoint.longitude, - latlngPoint.latitude, - address.formatAddress, - System.currentTimeMillis() + address.province, + address.city, + address.cityCode, + address.district, + address.adCode, + address.roads[0].name, + latlngPoint.lon, + latlngPoint.lat, + address.formatAddress, + System.currentTimeMillis() ) } -private fun AMapLocation.toLocInfo(location: AMapLocation): LocationInfo { +private fun MogoLocation.toLocInfo(location: MogoLocation): LocationInfo { return LocationInfo( - location.province, - location.city, - location.cityCode, - location.district, - location.adCode, - location.street, - location.longitude, - location.latitude, - location.address, - location.time, - location.bearing + location.province, + location.cityName, + location.cityCode, + location.district, + location.adCode, + location.street, + location.longitude, + location.latitude, + location.address, + location.time, + location.bearing ) } @@ -69,89 +69,33 @@ class LocationUtil private constructor() { private var init: Boolean = false private var mContext = AbsMogoApplication.getApp().applicationContext - private var locationClient: AMapLocationClient? = null - private var locationOption: AMapLocationClientOption? = null private var speedListener: SpeedListener? = null private var locationInfo: LocationInfo? = null private var speed: Float = 0.0f fun initLocation() { //初始化client - locationOption = getDefaultOption() - locationClient = AMapLocationClient(mContext) - //设置定位参数 - locationClient!!.setLocationOption(locationOption) - // 设置定位监听 - locationClient!!.setLocationListener(locationListener) init = true - startLocation() - } - - private fun getDefaultOption(): AMapLocationClientOption { - val mOption = AMapLocationClientOption() - mOption.locationMode = - AMapLocationClientOption.AMapLocationMode.Hight_Accuracy//可选,设置定位模式,可选的模式有高精度、仅设备、仅网络。默认为高精度模式 - mOption.isGpsFirst = true//可选,设置是否gps优先,只在高精度模式下有效。默认关闭 - mOption.httpTimeOut = 30000//可选,设置网络请求超时时间。默认为30秒。在仅设备模式下无效 - mOption.interval = 5000//可选,设置定位间隔。默认为2秒 - mOption.isNeedAddress = true//可选,设置是否返回逆地理地址信息。默认是true - mOption.isOnceLocation = false//可选,设置是否单次定位。默认是false - mOption.isOnceLocationLatest = false//可选,设置是否等待wifi刷新,默认为false.如果设置为true,会自动变为单次定位,持续定位时不要使用 - AMapLocationClientOption.setLocationProtocol(AMapLocationClientOption.AMapLocationProtocol.HTTP)//可选, 设置网络请求的协议。可选HTTP或者HTTPS。默认为HTTP - mOption.isSensorEnable = true//可选,设置是否使用传感器。默认是false - mOption.isWifiScan = - true //可选,设置是否开启wifi扫描。默认为true,如果设置为false会同时停止主动刷新,停止以后完全依赖于系统刷新,定位位置可能存在误差 - mOption.isLocationCacheEnable = false //可选,设置是否使用缓存定位,默认为true - mOption.geoLanguage = - AMapLocationClientOption.GeoLanguage.DEFAULT//可选,设置逆地理信息的语言,默认值为默认语言(根据所在地区选择语言) - return mOption - } - - private fun startLocation() { - if (checkInit()) { - // 设置定位参数 - locationClient!!.setLocationOption(locationOption) - // 启动定位 - locationClient!!.startLocation() - } - } - - fun setOnMapLocationChangedListener(listener: OnMapLocationChangedListener) { - this.listener = listener - } - - /** - * 定位监听 - */ - private var locationListener: AMapLocationListener = AMapLocationListener { location -> - if (null != location) { - locationInfo = LocationInfo() - locationInfo!!.longitude = location.longitude - locationInfo!!.latitude = location.latitude - locationInfo!!.address = location.address - locationInfo!!.time = location.time - locationInfo!!.provinceName = location.province - locationInfo!!.cityName = location.city - locationInfo!!.cityCode = location.cityCode - locationInfo!!.areaName = location.district - locationInfo!!.areaCode = location.adCode - locationInfo!!.street = location.street - locationInfo!!.direction = location.bearing - listener?.onChanged(locationInfo!!) - speed = location.speed - speedListener?.onSpeedGet(location.speed) - } else { - Log.d(TAG, "定位失败 -> location is null") - } - } - - - private fun checkInit(): Boolean { - return if (!init) { - initLocation() - init - } else { - true + MogoApisHandler.getInstance().apis.mapServiceApi.getSingletonLocationClient(mContext).addLocationListener {location-> + if (null != location) { + locationInfo = LocationInfo() + locationInfo!!.longitude = location.longitude + locationInfo!!.latitude = location.latitude + locationInfo!!.address = location.address + locationInfo!!.time = location.time + locationInfo!!.provinceName = location.province + locationInfo!!.cityName = location.cityName + locationInfo!!.cityCode = location.cityCode + locationInfo!!.areaName = location.district + locationInfo!!.areaCode = location.adCode + locationInfo!!.street = location.street + locationInfo!!.direction = location.bearing + listener?.onChanged(locationInfo!!) + speed = location.speed + speedListener?.onSpeedGet(location.speed) + } else { + Log.d(TAG, "定位失败 -> location is null") + } } } @@ -159,40 +103,40 @@ class LocationUtil private constructor() { return if (null != locationInfo) { locationInfo!! } else { - if (null == locationClient) { - locationClient = AMapLocationClient(mContext) - } - val location = locationClient!!.lastKnownLocation + val location = MogoApisHandler.getInstance().apis.mapServiceApi.getSingletonLocationClient(mContext).lastKnowLocation location.toLocInfo(location) } } //如果获取到的location address为空可以通过高德逆地理编码获得 fun geoCodeLocation( - latlngPoint: LatLonPoint, + latlngPoint: MogoLatLng, locGeoCode: (((locInfo: LocationInfo) -> Unit)), onError: ((msg: String) -> Unit) ) { - var geocoderSearch = GeocodeSearch(AbsMogoApplication.getApp().applicationContext) - var regeocodeQuery = RegeocodeQuery(latlngPoint, 200f, GeocodeSearch.AMAP) + var geocoderSearch = MogoApisHandler.getInstance().apis.mapServiceApi.getGeoSearch(AbsMogoApplication.getApp().applicationContext) + var regeocodeQuery = MogoRegeocodeQuery() + regeocodeQuery.latlngType = "" + regeocodeQuery.point = latlngPoint + regeocodeQuery.radius = 200 geocoderSearch.getFromLocationAsyn(regeocodeQuery) - geocoderSearch.setOnGeocodeSearchListener(object : GeocodeSearch.OnGeocodeSearchListener { - override fun onRegeocodeSearched(p0: RegeocodeResult?, p1: Int) { - if (p1 == 1000) { + geocoderSearch.setGeoSearchListener(object : IMogoGeoSearchListener { + + + override fun onRegeocodeSearched(regeocodeResult: MogoRegeocodeResult?) { + super.onRegeocodeSearched(regeocodeResult) + if( regeocodeResult == null ){ + trackUploadGeo(3); + onError.invoke("geoCode") + } else { trackUploadGeo(2); - var regeocodeAddress = p0?.regeocodeAddress + var regeocodeAddress = regeocodeResult?.regeocodeAddress regeocodeAddress?.let { var locInfo = regeocodeAddress.toLocInfo(regeocodeAddress, latlngPoint) locGeoCode.invoke(locInfo) } - } else { - trackUploadGeo(3); - onError.invoke("geoCode -> $p1") } } - - override fun onGeocodeSearched(p0: GeocodeResult?, p1: Int) { - } }) } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java index f3b279d147..1adcc4500f 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/map/MyLocationUtil.java @@ -6,12 +6,13 @@ import android.graphics.drawable.Drawable; import android.os.Looper; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.ImageView; +import android.widget.TextView; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.amap.api.maps.model.BitmapDescriptorFactory; import com.bumptech.glide.request.RequestOptions; import com.bumptech.glide.request.target.SimpleTarget; import com.bumptech.glide.request.transition.Transition; @@ -97,11 +98,34 @@ public class MyLocationUtil { if (res == null) { throw new IllegalArgumentException("inflate myLocation bitmap can not be null!"); } - View root = - LayoutInflater.from(context).inflate(R.layout.module_common_my_location, null, false); - ImageView iv = - root.findViewById(R.id.module_map_amap_my_location_iv); + View root = LayoutInflater.from(context).inflate(R.layout.module_common_my_location, null, false); + ImageView iv = root.findViewById(R.id.module_map_amap_my_location_iv); iv.setImageBitmap(res); - return BitmapDescriptorFactory.fromView(root).getBitmap(); + return fromView(root); + } + + + private static Bitmap fromView( View view ) { + view.setDrawingCacheEnabled( true ); + processChildView( view ); + view.destroyDrawingCache(); + view.measure( View.MeasureSpec.makeMeasureSpec( 0, View.MeasureSpec.UNSPECIFIED ), View.MeasureSpec.makeMeasureSpec( 0, View.MeasureSpec.UNSPECIFIED ) ); + view.layout( 0, 0, view.getMeasuredWidth(), view.getMeasuredHeight() ); + Bitmap bitmap = null; + return ( bitmap = view.getDrawingCache() ) != null ? bitmap.copy( Bitmap.Config.ARGB_8888, false ) : null; + } + + private static void processChildView( View view ) { + if ( !( view instanceof ViewGroup ) ) { + if ( view instanceof TextView ) { + ( ( TextView ) view ).setHorizontallyScrolling( false ); + } + + } else { + for ( int var1 = 0; var1 < ( ( ViewGroup ) view ).getChildCount(); ++var1 ) { + processChildView( ( ( ViewGroup ) view ).getChildAt( var1 ) ); + } + + } } } diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CoordinateUtils.java b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CoordinateUtils.java index a12b86d42e..411d66e5cf 100644 --- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CoordinateUtils.java +++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/utils/CoordinateUtils.java @@ -1,7 +1,5 @@ package com.mogo.module.common.utils; -import com.amap.api.maps.model.LatLng; - /** * @author donghongyu */ @@ -13,7 +11,6 @@ public class CoordinateUtils { /** * 手机GPS坐标转火星坐标 * - * @param wgLoc * @return */ public static double[] transformFromWGSToGCJ( double lat, double lon ) { @@ -36,32 +33,6 @@ public class CoordinateUtils { return new double[]{lat + dLat, lon + dLon}; } - /** - * 手机GPS坐标转火星坐标 - * - * @param wgLoc - * @return - */ - public static LatLng transformFromWGSToGCJ( LatLng wgLoc ) { - - //如果在国外,则默认不进行转换 - if ( outOfChina( wgLoc.latitude, wgLoc.longitude ) ) { - return new LatLng( wgLoc.latitude, wgLoc.longitude ); - } - double dLat = transformLat( wgLoc.longitude - 105.0, - wgLoc.latitude - 35.0 ); - double dLon = transformLon( wgLoc.longitude - 105.0, - wgLoc.latitude - 35.0 ); - double radLat = wgLoc.latitude / 180.0 * Math.PI; - double magic = Math.sin( radLat ); - magic = 1 - ee * magic * magic; - double sqrtMagic = Math.sqrt( magic ); - dLat = ( dLat * 180.0 ) / ( ( a * ( 1 - ee ) ) / ( magic * sqrtMagic ) * Math.PI ); - dLon = ( dLon * 180.0 ) / ( a / sqrtMagic * Math.cos( radLat ) * Math.PI ); - - return new LatLng( wgLoc.latitude + dLat, wgLoc.longitude + dLon ); - } - public static double transformLat( double x, double y ) { double ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt( x > 0 ? x : -x ); diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java index 6d92d114de..f4b7fbaecb 100644 --- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java +++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/navi/BaseNaviInfoView.java @@ -3,7 +3,6 @@ package com.mogo.module.extensions.navi; import android.widget.ImageView; import android.widget.TextView; -import com.mogo.map.impl.amap.utils.IconTypeUtils; import com.mogo.map.navi.MogoNaviInfo; import java.text.SimpleDateFormat; @@ -21,10 +20,6 @@ public abstract class BaseNaviInfoView { } - protected void fillNextCrossTurning( TextView target, int nextIconType ) { - target.setText( "后" + IconTypeUtils.getNameByIconType( nextIconType ) ); - } - protected void fillNextCrossIconType( ImageView target, int iconId ) { if ( iconId > 0 ) { target.setImageResource( iconId ); diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java index 6c18a1574b..ef3a72ef9e 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapFragment.java @@ -59,33 +59,31 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements @Override public void changeTo2dMode() { - if ( !isVrMode() ) { - return; - } - mMogoMapView.display2DMap( false, true ); - afterMapModeChanged(); - MogoApisHandler.getInstance().getApis().getAdasControllerApi().showADAS(); - MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, false ); +// if ( !isVrMode() ) { +// return; +// } +// afterMapModeChanged(); +// MogoApisHandler.getInstance().getApis().getAdasControllerApi().showADAS(); +// MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, false ); } @Override public void changeToVRMode() { - if ( isVrMode() ) { - return; - } - mMogoMapView.displayVRMap( mIsFirstLoadCustomMap, true ); - if ( mIsFirstLoadCustomMap ) { -// initMapView(); -// mMogoMap = mMogoMapView.getMap(); -// if ( mMogoMap.getUIController() != null ) { -// mMogoMap.getUIController().showMyLocation( true ); -// mMogoMap.getUIController().recoverLockMode();// 启动锁车 -// } -// mIsFirstLoadCustomMap = false; - } - afterMapModeChanged(); - MogoApisHandler.getInstance().getApis().getAdasControllerApi().closeADAS(); - MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true ); +// if ( isVrMode() ) { +// return; +// } +// if ( mIsFirstLoadCustomMap ) { +//// initMapView(); +//// mMogoMap = mMogoMapView.getMap(); +//// if ( mMogoMap.getUIController() != null ) { +//// mMogoMap.getUIController().showMyLocation( true ); +//// mMogoMap.getUIController().recoverLockMode();// 启动锁车 +//// } +//// mIsFirstLoadCustomMap = false; +// } +// afterMapModeChanged(); +// MogoApisHandler.getInstance().getApis().getAdasControllerApi().closeADAS(); +// MogoApisHandler.getInstance().getApis().getStatusManagerApi().setVrMode( TAG, true ); } private void afterMapModeChanged() { @@ -111,10 +109,12 @@ public class MapFragment extends MvpFragment< MapView, MapPresenter > implements mMogoMapView = findViewById( R.id.module_map_id_map ); mMogoMapView.onCreate( savedInstanceState ); mMogoMap = mMogoMapView.getMap(); - mMogoMap.getUIController().showMyLocation( true ); - mMogoMap.getUIController().recoverLockMode();// 启动锁车 + if ( mMogoMap != null ) { + mMogoMap.getUIController().showMyLocation( true ); + mMogoMap.getUIController().recoverLockMode();// 启动锁车 + } // 根据本地配置设置自车图标 - MyLocationUtil.setMyLocationIconUrl(getContext(), SharedPrefsMgr.getInstance(getContext()).getString("MY_LOCATION_CONFIG", "")); + MyLocationUtil.setMyLocationIconUrl( getContext(), SharedPrefsMgr.getInstance( getContext() ).getString( "MY_LOCATION_CONFIG", "" ) ); } @NonNull diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/bean/EntityConvertUtils.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/bean/EntityConvertUtils.java index 90797bbebb..0b421ff6a4 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/bean/EntityConvertUtils.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/bean/EntityConvertUtils.java @@ -1,7 +1,5 @@ package com.mogo.module.navi.bean; -import com.amap.api.maps.model.CameraPosition; -import com.amap.api.services.geocoder.RegeocodeAddress; import com.mogo.map.MogoLatLng; import com.mogo.map.search.inputtips.MogoTip; import com.mogo.module.navi.constants.DataConstants; @@ -93,36 +91,6 @@ public class EntityConvertUtils { MogoTip.getTypeCode() ); } - - //public static SearchPoi aMapLocation2Poi( AMapLocation location ) { - // if ( location == null || location.getErrorCode() != AMapLocation.LOCATION_SUCCESS ) { - // return null; - // } - // return new SearchPoi( System.currentTimeMillis() + "", - // location.getPoiName(), - // location.getAddress(), - // location.getLatitude(), - // location.getLongitude(), - // location.getDistrict(), - // location.getAdCode(), - // location.getCoordType() ); - //} - - public static SearchPoi geocodeAddress2Poi( RegeocodeAddress address, CameraPosition position ) { - if ( address == null || position == null ) { - return null; - } - return new SearchPoi( System.currentTimeMillis() + "", - address.getFormatAddress(), - address.getFormatAddress(), - position.target.latitude, - position.target.longitude, - address.getDistrict(), - address.getAdCode(), - "" ); - } - - public static SearchPoi geoToPoi( double latitude, double longitude, int type ) { SearchPoi searchPoi = new SearchPoi( System.currentTimeMillis() + "", null, diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java index 3e4c2924e5..ca563b4fa8 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/ui/search/CategoryPresenter.java @@ -5,7 +5,6 @@ import android.location.Location; import androidx.annotation.NonNull; import androidx.lifecycle.LifecycleOwner; -import com.amap.api.maps.model.LatLng; import com.mogo.commons.mvp.Presenter; import com.mogo.map.MogoLatLng; import com.mogo.map.location.MogoLocation; 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 5db643b50e..1c38e58bb0 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 @@ -15,7 +15,6 @@ import android.view.MotionEvent; import androidx.annotation.NonNull; -import com.amap.api.maps.model.MarkerOptions; import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.debug.DebugConfig; import com.mogo.commons.network.ParamsProvider; @@ -46,7 +45,6 @@ import com.mogo.module.common.entity.MarkerResponse; import com.mogo.module.common.map.MapCenterPointStrategy; import com.mogo.module.common.map.Scene; import com.mogo.module.common.utils.CoordinateSystemTransformationUtil; -import com.mogo.module.common.utils.CoordinateUtils; import com.mogo.module.service.autopilot.AutoPilotRemoteController; import com.mogo.module.service.intent.IntentHandlerFactory; import com.mogo.module.service.launchercard.LauncherCardRefresher; @@ -62,12 +60,11 @@ import com.mogo.module.service.refresh.AutoRefreshStrategy; import com.mogo.module.service.refresh.CustomRefreshStrategy; import com.mogo.module.service.refresh.RefreshObject; import com.mogo.module.service.strategy.CarIconDisplayStrategy; -import com.mogo.module.service.utils.LocationParseUtil; +import com.mogo.module.service.ttsConfig.TtsConfigModleData; import com.mogo.module.service.utils.SimpleLocationCorrectStrategy; import com.mogo.module.service.vrmode.VrModeController; import com.mogo.module.service.websocket.LocationResult; import com.mogo.module.service.websocket.OnePerSecondSendContent; -import com.mogo.module.service.ttsConfig.TtsConfigModleData; import com.mogo.service.adas.IMogoADASController; import com.mogo.service.adas.entity.ADASRecognizedResult; import com.mogo.service.connection.IMogoOnWebSocketMessageListener; diff --git a/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java b/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java index 9e2a315036..ab2f7defd5 100644 --- a/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java +++ b/modules/mogo-module-share/src/main/java/com/mogo/module/share/GaoDeAimlessProvider.java @@ -1,14 +1,10 @@ package com.mogo.module.share; import android.content.Context; -import android.nfc.Tag; import android.util.Log; import com.alibaba.android.arouter.facade.annotation.Route; import com.alibaba.android.arouter.facade.template.IProvider; -import com.amap.api.services.nearby.UploadInfoCallback; -import com.google.gson.JsonObject; -import com.mogo.map.MogoLatLng; import com.mogo.map.navi.IMogoAimlessModeListener; import com.mogo.map.navi.MogoCongestionInfo; import com.mogo.map.navi.MogoCongestionLink; @@ -20,6 +16,7 @@ import com.mogo.module.common.entity.UploadTrafficEntity; import com.mogo.module.share.net.TrafficModelData; import com.mogo.service.MogoServicePaths; import com.mogo.utils.network.utils.GsonUtil; + import java.util.ArrayList; import java.util.List; diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XObuManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XObuManager.java index e0e58bf260..fb4766fe4f 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XObuManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/V2XObuManager.java @@ -9,13 +9,12 @@ import android.util.ArrayMap; import androidx.localbroadcastmanager.content.LocalBroadcastManager; -import com.amap.api.maps.CoordinateConverter; -import com.amap.api.maps.model.LatLng; import com.mogo.commons.debug.DebugConfig; import com.mogo.map.location.MogoLocation; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.common.entity.V2XObuEventEntity; import com.mogo.module.common.entity.V2XPushMessageEntity; +import com.mogo.module.common.utils.CoordinateUtils; import com.mogo.module.v2x.listener.V2XLocationListener; import com.mogo.module.v2x.scenario.scene.obu.V2XObuEventScenario; import com.mogo.module.v2x.utils.ADASUtils; @@ -260,14 +259,10 @@ public class V2XObuManager implements IObuCallback, Handler.Callback { if (ObuConfig.useObuLocation) { MogoLocation currentLocation = new MogoLocation(); - CoordinateConverter converter = new CoordinateConverter(getContext()); - converter.from(CoordinateConverter.CoordType.GPS); - LatLng latLng = new LatLng(locationInfo.getLat(), locationInfo.getLon()); - converter.coord(latLng); - LatLng convert = converter.convert(); + double coor[] = CoordinateUtils.transformFromWGSToGCJ( locationInfo.getLat(), locationInfo.getLon() ); - currentLocation.setLatitude(convert.latitude); - currentLocation.setLongitude(convert.longitude); + currentLocation.setLatitude(coor[0]); + currentLocation.setLongitude(coor[1]); currentLocation.setBearing(computeCarAngle(currentLocation)); V2XObuEventScenario.getInstance().updateLocation(currentLocation); diff --git a/modules/mogo-modules-mvision/src/main/java/com/mogo/module/machine/vision/MachineVisionMapView.java b/modules/mogo-modules-mvision/src/main/java/com/mogo/module/machine/vision/MachineVisionMapView.java index 2410e87788..6b70ef1b3b 100644 --- a/modules/mogo-modules-mvision/src/main/java/com/mogo/module/machine/vision/MachineVisionMapView.java +++ b/modules/mogo-modules-mvision/src/main/java/com/mogo/module/machine/vision/MachineVisionMapView.java @@ -1,18 +1,11 @@ package com.mogo.module.machine.vision; -import android.annotation.TargetApi; import android.content.Context; import android.util.AttributeSet; -import android.view.View; -import android.view.ViewGroup; -import android.widget.FrameLayout; import androidx.annotation.Nullable; -import com.mogo.map.IMogoMapView; import com.mogo.map.MogoBaseMapView; -import com.mogo.map.MogoMap; -import com.mogo.map.impl.custom.CustomMapView; import com.mogo.utils.logger.Logger; public @@ -39,33 +32,7 @@ class MachineVisionMapView extends MogoBaseMapView { } @Override - protected void addDleMaps() { - IMogoMapView machineMapView = new CustomMapView().create( getContext() ); - if ( machineMapView != null ) { - final View mapView = machineMapView.getMapView(); - if ( mapView != null ) { - addView( mapView, new FrameLayout.LayoutParams( ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT ) ); - } else { - Logger.e( TAG, "create MapView instance failed." ); - } - } else { - Logger.e( TAG, "create IMogoMapView instance failed." ); - } - mMapView = machineMapView; - MogoMap.getInstance().init( getContext(), mMapView.getMap() ); - onCreate( null ); - postDelayed( ()->{ - getMap().getUIController().showMyLocation( true ); - }, 1000 ); - } - - @Override - public void display2DMap( boolean invokeCreateAuto, boolean invokeResumeAuto ) { - - } - - @Override - public void displayVRMap( boolean invokeCreateAuto, boolean invokeResumeAuto ) { - + protected void addMapView( Context context ) { + Logger.d(TAG, "addMapView"); } }