* 描述
*/
-public class AMapBaseMapView extends MogoBaseMapView {
-
- public AMapBaseMapView( Context context ) {
- super( context );
- }
-
- public AMapBaseMapView( Context context, @Nullable AttributeSet attrs ) {
- super( context, attrs );
- }
-
- public AMapBaseMapView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
- super( context, attrs, defStyleAttr );
- }
+public class AMapBaseMapView implements IMogoMapViewCreator {
@Override
- protected IMogoMapView createMapView( Context context ) {
+ public IMogoMapView create( Context context ) {
return new AMapNaviViewWrapper( new AMapNaviView( context ) );
}
}
diff --git a/libraries/map-custom/build.gradle b/libraries/map-custom/build.gradle
index c54906ade4..3f5c03ba5a 100644
--- a/libraries/map-custom/build.gradle
+++ b/libraries/map-custom/build.gradle
@@ -44,13 +44,10 @@ dependencies {
implementation rootProject.ext.dependencies.mogoutils
implementation rootProject.ext.dependencies.mogomapapi
implementation rootProject.ext.dependencies.mogocommons
- implementation rootProject.ext.dependencies.mogomapapi
} else {
implementation project(':foudations:mogo-utils')
implementation project(':libraries:mogo-map-api')
implementation project(':foudations:mogo-commons')
- implementation project(':services:mogo-service-api')
-
}
api 'com.zhidaoauto.machine:map:1.0.0-SNAPSHOT-54'
diff --git a/libraries/map-custom/gradle.properties b/libraries/map-custom/gradle.properties
index bc8dabb558..fa2222059a 100644
--- a/libraries/map-custom/gradle.properties
+++ b/libraries/map-custom/gradle.properties
@@ -1,3 +1,3 @@
GROUP=com.mogo.map
-POM_ARTIFACT_ID=map-amap
+POM_ARTIFACT_ID=map-custom
VERSION_CODE=1
\ No newline at end of file
diff --git a/libraries/map-custom/src/main/AndroidManifest.xml b/libraries/map-custom/src/main/AndroidManifest.xml
index 0b666e2ca2..c8d6f82fc1 100644
--- a/libraries/map-custom/src/main/AndroidManifest.xml
+++ b/libraries/map-custom/src/main/AndroidManifest.xml
@@ -1,5 +1,5 @@
* 描述
*/
-public class AMapBaseMapView extends MogoBaseMapView {
+public class AMapBaseMapView implements IMogoMapViewCreator {
private static final String TAG = "AMapBaseMapView";
- public AMapBaseMapView( Context context ) {
- super( context );
- }
-
- public AMapBaseMapView( Context context, @Nullable AttributeSet attrs ) {
- super( context, attrs );
- }
-
- public AMapBaseMapView( Context context, @Nullable AttributeSet attrs, int defStyleAttr ) {
- super( context, attrs, defStyleAttr );
- }
-
-
private MapAutoView mapAutoView;
+
@Override
- protected IMogoMapView createMapView( Context context ) {
- Log.i(TAG, "autoop--createMapView: ");
- if(mapAutoView == null){
- Log.i(TAG, "autoop--createMapView: mapAutoView is null create");
- MapAutoApi.INSTANCE.init(MapParams.Companion.init().setDebugMode(false)
- .setCoordinateType(MapParams.COORDINATETYPE_GCJ02)
- .setPerspectiveMode(MapParams.MAP_PERSPECTIVE_2D)
- .setStyleMode(MapParams.MAP_STYLE_NIGHT));
- mapAutoView = new MapAutoView( context );
+ public IMogoMapView create( Context context ) {
+ Log.i( TAG, "autoop--createMapView: " );
+ if ( mapAutoView == null ) {
+ Log.i( TAG, "autoop--createMapView: mapAutoView is null create" );
+ MapAutoApi.INSTANCE.init( MapParams.Companion.init().setDebugMode( false )
+ .setCoordinateType( MapParams.COORDINATETYPE_GCJ02 )
+ .setPerspectiveMode( MapParams.MAP_PERSPECTIVE_2D )
+ .setStyleMode( MapParams.MAP_STYLE_NIGHT ) );
+ mapAutoView = new MapAutoView( context );
}
- return new AMapViewWrapper(mapAutoView);
+ return new AMapViewWrapper( mapAutoView );
}
}
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 6540634586..df6b96ec54 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
@@ -180,7 +180,7 @@ public class AMapViewWrapper implements IMogoMapView, IMogoMapUIController, Loca
if (mMapView != null) {
mMapView.onCreate(bundle);
Logger.d(TAG, "map onCreate");
-// initMapView();
+ initMapView();
initListeners();
// initMyLocation();
}
diff --git a/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/search/RoadSearchClient.java b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/search/RoadSearchClient.java
new file mode 100644
index 0000000000..9610ba22fb
--- /dev/null
+++ b/libraries/map-custom/src/main/java/com/mogo/map/impl/custom/search/RoadSearchClient.java
@@ -0,0 +1,45 @@
+package com.mogo.map.impl.custom.search;
+
+import android.content.Context;
+
+import com.mogo.map.MogoLatLng;
+import com.mogo.map.search.drive.IMogoRoadSearch;
+import com.mogo.map.search.drive.IMogoRoadSearchListener;
+import com.mogo.map.search.drive.MogoRoadSearchQuery;
+import com.mogo.utils.logger.Logger;
+
+/**
+ * @author congtaowang
+ * @since 2020/6/1
+ *
+ * 描述
+ */
+public class RoadSearchClient implements IMogoRoadSearch {
+
+ private static final String TAG = "DriveSearchClient";
+
+ private IMogoRoadSearchListener mListener;
+
+ @Override
+ public void searchRoadPath( Context context,
+ MogoRoadSearchQuery query ) {
+
+ }
+
+ private boolean checkPoint( MogoLatLng latLng, String msg ) {
+ if ( latLng == null ) {
+ Logger.e( TAG, msg + " is null" );
+ return false;
+ }
+ if ( latLng.lat <= 0d || latLng.lon <= 0d ) {
+ Logger.e( TAG, msg + " is not a valid " );
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void setRoadPathSearchListener( IMogoRoadSearchListener listener ) {
+ mListener = listener;
+ }
+}
diff --git a/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMapViewCreator.java b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMapViewCreator.java
new file mode 100644
index 0000000000..58ee2cc06c
--- /dev/null
+++ b/libraries/mogo-map-api/src/main/java/com/mogo/map/IMogoMapViewCreator.java
@@ -0,0 +1,14 @@
+package com.mogo.map;
+
+import android.content.Context;
+
+/**
+ * @author congtaowang
+ * @since 2019-12-18
+ *
+ * 地图抽象
+ */
+public interface IMogoMapViewCreator {
+
+ IMogoMapView create( Context context);
+}
diff --git a/libraries/mogo-map/build.gradle b/libraries/mogo-map/build.gradle
index 6cfbecae4f..bb41e9c25d 100644
--- a/libraries/mogo-map/build.gradle
+++ b/libraries/mogo-map/build.gradle
@@ -29,12 +29,14 @@ dependencies {
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/MogoGeoSearch.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoGeoSearch.java
index b67c1c4086..5c63cf11cd 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
@@ -24,7 +24,7 @@ public class MogoGeoSearch implements IMogoGeoSearch {
private IMogoGeoSearch mDelegate;
public MogoGeoSearch( Context context ) {
- mDelegate = new GeocodeSearchClient( context );
+ mDelegate = MogoMapDelegateFactory.getGeoSearchDelegate( context );
}
@Override
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 5c16622307..2db7f2df93 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
@@ -18,7 +18,7 @@ public class MogoInputtipsSearch implements IMogoInputtipsSearch {
private IMogoInputtipsSearch mDelegate;
public MogoInputtipsSearch( Context context, MogoInputtipsQuery query ) {
- mDelegate = new InputtipsSearch( context, query );
+ mDelegate = MogoMapDelegateFactory.getInputtipsSearchDelegate( context, query );
}
@Override
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 1ea53c59c2..383dafe849 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
@@ -17,7 +17,7 @@ public class MogoLocationClient implements IMogoLocationClient {
private static volatile MogoLocationClient sInstance;
public MogoLocationClient( Context context ) {
- mDelegate = new ALocationClient( context );
+ mDelegate = MogoMapDelegateFactory.getLocationClientDelegate( context );
}
public static MogoLocationClient getInstance( Context context ) {
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
new file mode 100644
index 0000000000..bb6875b506
--- /dev/null
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoMapDelegateFactory.java
@@ -0,0 +1,104 @@
+package com.mogo.map;
+
+import android.content.Context;
+
+import com.mogo.commons.debug.DebugConfig;
+import com.mogo.map.impl.amap.AMapBaseMapView;
+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.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.uicontroller.IMogoMapUIController;
+import com.mogo.utils.AppUtils;
+import com.mogo.utils.logger.Logger;
+
+/**
+ * @author congtaowang
+ * @since 2020/6/17
+ *
+ * 描述
+ */
+class MogoMapDelegateFactory {
+
+ private static final String TAG = "MogoMapDelegateFactory";
+
+ public static IMogoGeoSearch getGeoSearchDelegate( Context context ) {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoGeoSearch" );
+ return new com.mogo.map.impl.custom.search.GeocodeSearchClient( context );
+ }
+ return new GeocodeSearchClient( context );
+ }
+
+ public static IMogoInputtipsSearch getInputtipsSearchDelegate( Context context, MogoInputtipsQuery query ) {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoInputtipsSearch" );
+ return new com.mogo.map.impl.custom.search.InputtipsSearch( context, query );
+ }
+ return new InputtipsSearch( context, query );
+ }
+
+ public static IMogoLocationClient getLocationClientDelegate( Context context ) {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoLocationClient" );
+ return new com.mogo.map.impl.custom.location.ALocationClient( context );
+ }
+ return new ALocationClient( context );
+ }
+
+ public static IMogoMapUIController getMapUIControllerDelegate() {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoMapUIController" );
+ return com.mogo.map.impl.custom.uicontroller.AMapUIController.getInstance();
+ }
+ return AMapUIController.getInstance();
+ }
+
+ public static IMogoMapViewCreator getMapViewCreatorDelegate() {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoMapViewCreator" );
+ return new com.mogo.map.impl.custom.AMapBaseMapView();
+ }
+ return new AMapBaseMapView();
+ }
+
+ public static IMogoNavi getNaviDelegate( Context context ) {
+ if ( AppUtils.isAppInstalled( context, "com.autonavi.amapauto" ) ) {
+ return AutoNaviClient.getInstance( context );
+ } else {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoNavi" );
+ return com.mogo.map.impl.custom.navi.NaviClient.getInstance( context );
+ }
+ return NaviClient.getInstance( context );
+ }
+ }
+
+ public static IMogoPoiSearch getPoiSearchClientDelegate( Context context, MogoPoiSearchQuery query ) {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoPoiSearch" );
+ return new com.mogo.map.impl.custom.search.PoiSearchClient( context, query );
+ }
+ return new PoiSearchClient( context, query );
+ }
+
+ public static IMogoRoadSearch getRoadSearchDelegate() {
+ if ( DebugConfig.isUseCustomMap() ) {
+ Logger.d( TAG, "use custom IMogoRoadSearch" );
+ return new com.mogo.map.impl.custom.search.RoadSearchClient();
+ }
+ return new RoadSearchClient();
+ }
+}
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 f4642f2440..bdab17aad5 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
@@ -29,7 +29,7 @@ public class MogoMapUIController implements IMogoMapUIController {
private static volatile MogoMapUIController sInstance;
private MogoMapUIController() {
- mDelegate = AMapUIController.getInstance();
+ mDelegate = MogoMapDelegateFactory.getMapUIControllerDelegate();
}
public static MogoMapUIController getInstance() {
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 20c21725d2..bd97b78e64 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
@@ -15,7 +15,7 @@ import com.mogo.utils.logger.Logger;
*
* 地图实例
*/
-public class MogoMapView extends AMapBaseMapView implements ILifeCycle {
+public class MogoMapView extends MogoBaseMapView implements ILifeCycle {
private static final String TAG = "MogoMapView";
public MogoMapView( Context context ) {
@@ -30,6 +30,11 @@ public class MogoMapView extends AMapBaseMapView implements ILifeCycle {
super( context, attrs, defStyleAttr );
}
+ @Override
+ protected IMogoMapView createMapView( Context context ) {
+ return MogoMapDelegateFactory.getMapViewCreatorDelegate().create( context );
+ }
+
@Override
public IMogoMap getMap() {
return super.getMap();
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 cd43c4147c..6e6e0dd3e6 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
@@ -30,11 +30,7 @@ public class MogoNavi implements IMogoNavi {
private static volatile MogoNavi sInstance;
private MogoNavi( Context context ) {
- if ( AppUtils.isAppInstalled( context, "com.autonavi.amapauto" ) ) {
- mDelegate = AutoNaviClient.getInstance( context );
- } else {
- mDelegate = NaviClient.getInstance( context );
- }
+ mDelegate = MogoMapDelegateFactory.getNaviDelegate( context );
}
public static MogoNavi getInstance( Context context ) {
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 c40e73de9f..3e1a782a05 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
@@ -22,7 +22,7 @@ public class MogoPoiSearch implements IMogoPoiSearch {
private IMogoPoiSearch mDelegate;
public MogoPoiSearch( Context context, MogoPoiSearchQuery query ) {
- mDelegate = new PoiSearchClient( context, query );
+ mDelegate = MogoMapDelegateFactory.getPoiSearchClientDelegate( context, query );
}
@Override
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/MogoRoadSearch.java b/libraries/mogo-map/src/main/java/com/mogo/map/MogoRoadSearch.java
index cbd86301c0..5853df9389 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/MogoRoadSearch.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/MogoRoadSearch.java
@@ -2,7 +2,6 @@ package com.mogo.map;
import android.content.Context;
-import com.mogo.map.impl.amap.search.RoadSearchClient;
import com.mogo.map.search.drive.IMogoRoadSearch;
import com.mogo.map.search.drive.IMogoRoadSearchListener;
import com.mogo.map.search.drive.MogoRoadSearchQuery;
@@ -15,10 +14,10 @@ import com.mogo.map.search.drive.MogoRoadSearchQuery;
*/
public class MogoRoadSearch implements IMogoRoadSearch {
- private RoadSearchClient mDelegate;
+ private IMogoRoadSearch mDelegate;
public MogoRoadSearch() {
- mDelegate = new RoadSearchClient();
+ mDelegate = MogoMapDelegateFactory.getRoadSearchDelegate();
}
@Override
diff --git a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
index dc31c16fb9..41ae10e136 100644
--- a/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
+++ b/modules/mogo-module-service/src/main/java/com/mogo/module/service/intent/MockIntentHandler.java
@@ -29,6 +29,7 @@ import com.mogo.utils.TipToast;
import com.mogo.utils.WorkThreadHandler;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
+import com.mogo.utils.storage.SharedPrefsMgr;
import java.util.ArrayList;
import java.util.List;
@@ -289,6 +290,10 @@ public class MockIntentHandler implements IntentHandler {
case 17:
DebugConfig.setRequestOnlineCarData( intent.getBooleanExtra( "status", true ) );
break;
+ case 18:
+ TipToast.shortTip( "设置完成,下次启动生效" );
+ SharedPrefsMgr.getInstance( context ).putBoolean( "useCustomMap", intent.getBooleanExtra( "useCustomMap", false ) );
+ break;
}
}