opt
This commit is contained in:
@@ -9,6 +9,7 @@ import android.util.Log;
|
|||||||
import android.view.MotionEvent;
|
import android.view.MotionEvent;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.widget.Button;
|
import android.widget.Button;
|
||||||
|
import android.widget.CheckBox;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import androidx.annotation.NonNull;
|
import androidx.annotation.NonNull;
|
||||||
@@ -71,6 +72,7 @@ public class DemoCardViewFragment extends MvpFragment< IView, Presenter< IView >
|
|||||||
private TextView mLocInfo;
|
private TextView mLocInfo;
|
||||||
private TextView mLoc;
|
private TextView mLoc;
|
||||||
private Button m2D3D;
|
private Button m2D3D;
|
||||||
|
private CheckBox mNaviMode;
|
||||||
|
|
||||||
private IMogoMarker mLastClickedMarker;
|
private IMogoMarker mLastClickedMarker;
|
||||||
|
|
||||||
@@ -91,6 +93,8 @@ public class DemoCardViewFragment extends MvpFragment< IView, Presenter< IView >
|
|||||||
@Override
|
@Override
|
||||||
protected void initViews() {
|
protected void initViews() {
|
||||||
|
|
||||||
|
mNaviMode = findViewById( R.id.demo_module_id_navi_mode );
|
||||||
|
|
||||||
mMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
|
mMapService = ( IMogoMapService ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICES_MAP ).navigation( getContext() );
|
||||||
mPoiSearch = mMapService.getPoiSearch( getContext(), new MogoPoiSearchQuery() );
|
mPoiSearch = mMapService.getPoiSearch( getContext(), new MogoPoiSearchQuery() );
|
||||||
mPoiSearch.setPoiSearchListener( this );
|
mPoiSearch.setPoiSearchListener( this );
|
||||||
@@ -179,7 +183,7 @@ public class DemoCardViewFragment extends MvpFragment< IView, Presenter< IView >
|
|||||||
findViewById( R.id.demo_module_id_start_navi ).setOnClickListener( new View.OnClickListener() {
|
findViewById( R.id.demo_module_id_start_navi ).setOnClickListener( new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick( View v ) {
|
public void onClick( View v ) {
|
||||||
mNavi.startNavi();
|
mNavi.startNavi( !mNaviMode.isChecked() );
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
@@ -231,6 +235,22 @@ public class DemoCardViewFragment extends MvpFragment< IView, Presenter< IView >
|
|||||||
mMapUIController.changeMapMode( EnumMapUI.Type_Night );
|
mMapUIController.changeMapMode( EnumMapUI.Type_Night );
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
findViewById( R.id.demo_module_id_display_overlay ).setOnClickListener( new View.OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick( View v ) {
|
||||||
|
mMapUIController.displayOverview();
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
findViewById( R.id.demo_module_id_reverse_lock ).setOnClickListener( new View.OnClickListener() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onClick( View v ) {
|
||||||
|
mMapUIController.recoverLockMode();
|
||||||
|
}
|
||||||
|
} );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ public class DemoInfoWindowAdapter implements IMogoInfoWindowAdapter {
|
|||||||
@Override
|
@Override
|
||||||
public void onClick( View v ) {
|
public void onClick( View v ) {
|
||||||
if ( mNavi != null ) {
|
if ( mNavi != null ) {
|
||||||
mNavi.naviTo( marker.getPosition(), new MogoNaviConfig().realNavi( false ) );
|
mNavi.naviTo( marker.getPosition(), new MogoNaviConfig() );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
@@ -83,7 +83,7 @@ public class DemoInfoWindowAdapter implements IMogoInfoWindowAdapter {
|
|||||||
@Override
|
@Override
|
||||||
public void onClick( View v ) {
|
public void onClick( View v ) {
|
||||||
if ( mNavi != null ) {
|
if ( mNavi != null ) {
|
||||||
mNavi.naviTo( marker.getPosition(), new MogoNaviConfig().realNavi( false ) );
|
mNavi.naviTo( marker.getPosition(), new MogoNaviConfig() );
|
||||||
}
|
}
|
||||||
marker.hideInfoWindow();
|
marker.hideInfoWindow();
|
||||||
marker.remove();
|
marker.remove();
|
||||||
|
|||||||
@@ -94,6 +94,12 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:text="停止导航" />
|
android:text="停止导航" />
|
||||||
|
|
||||||
|
<CheckBox
|
||||||
|
android:id="@+id/demo_module_id_navi_mode"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="模拟导航" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
@@ -130,6 +136,23 @@
|
|||||||
android:text="黑夜" />
|
android:text="黑夜" />
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
<LinearLayout
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/demo_module_id_display_overlay"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="全览" />
|
||||||
|
|
||||||
|
<Button
|
||||||
|
android:id="@+id/demo_module_id_reverse_lock"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:text="继续导航" />
|
||||||
|
</LinearLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,20 +7,25 @@ import android.view.MotionEvent;
|
|||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
|
||||||
import com.amap.api.maps.AMap;
|
import com.amap.api.maps.AMap;
|
||||||
|
import com.amap.api.maps.CameraUpdateFactory;
|
||||||
|
import com.amap.api.maps.model.BitmapDescriptorFactory;
|
||||||
import com.amap.api.maps.model.LatLng;
|
import com.amap.api.maps.model.LatLng;
|
||||||
import com.amap.api.maps.model.Marker;
|
import com.amap.api.maps.model.Marker;
|
||||||
|
import com.amap.api.maps.model.MyLocationStyle;
|
||||||
import com.amap.api.maps.model.Poi;
|
import com.amap.api.maps.model.Poi;
|
||||||
import com.amap.api.maps.model.Polyline;
|
import com.amap.api.maps.model.Polyline;
|
||||||
import com.amap.api.navi.AMapNaviListener;
|
|
||||||
import com.amap.api.navi.AMapNaviView;
|
import com.amap.api.navi.AMapNaviView;
|
||||||
import com.amap.api.navi.AMapNaviViewListener;
|
import com.amap.api.navi.AMapNaviViewListener;
|
||||||
import com.amap.api.navi.AMapNaviViewOptions;
|
import com.amap.api.navi.AMapNaviViewOptions;
|
||||||
import com.mogo.map.IMogoMap;
|
import com.mogo.map.IMogoMap;
|
||||||
import com.mogo.map.IMogoMapView;
|
import com.mogo.map.IMogoMapView;
|
||||||
|
import com.mogo.map.impl.amap.location.ALocationClient;
|
||||||
import com.mogo.map.impl.amap.navi.NaviClient;
|
import com.mogo.map.impl.amap.navi.NaviClient;
|
||||||
import com.mogo.map.impl.amap.utils.ObjectUtils;
|
import com.mogo.map.impl.amap.utils.ObjectUtils;
|
||||||
import com.mogo.map.listener.MogoMapListenerHandler;
|
import com.mogo.map.listener.MogoMapListenerHandler;
|
||||||
|
import com.mogo.map.location.MogoLocation;
|
||||||
import com.mogo.map.uicontroller.EnumMapUI;
|
import com.mogo.map.uicontroller.EnumMapUI;
|
||||||
|
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||||
import com.mogo.utils.logger.Logger;
|
import com.mogo.utils.logger.Logger;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -29,7 +34,7 @@ import com.mogo.utils.logger.Logger;
|
|||||||
* <p>
|
* <p>
|
||||||
* 代理高德导航地图
|
* 代理高德导航地图
|
||||||
*/
|
*/
|
||||||
public class AMapNaviViewWrapper implements IMogoMapView,
|
public class AMapNaviViewWrapper implements IMogoMapView, IMogoMapUIController,
|
||||||
AMap.OnMarkerClickListener,
|
AMap.OnMarkerClickListener,
|
||||||
AMap.OnMapLoadedListener,
|
AMap.OnMapLoadedListener,
|
||||||
AMap.OnMapTouchListener,
|
AMap.OnMapTouchListener,
|
||||||
@@ -47,7 +52,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
|||||||
|
|
||||||
public AMapNaviViewWrapper( AMapNaviView mapView ) {
|
public AMapNaviViewWrapper( AMapNaviView mapView ) {
|
||||||
this.mMapView = mapView;
|
this.mMapView = mapView;
|
||||||
this.mIMap = new AMapWrapper( mMapView.getMap(), mMapView );
|
this.mIMap = new AMapWrapper( mMapView.getMap(), mMapView, this );
|
||||||
initMapView();
|
initMapView();
|
||||||
initListeners();
|
initListeners();
|
||||||
}
|
}
|
||||||
@@ -112,6 +117,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
|||||||
// 2D模式
|
// 2D模式
|
||||||
options.setTilt( 0 );
|
options.setTilt( 0 );
|
||||||
mMapView.setViewOptions( options );
|
mMapView.setViewOptions( options );
|
||||||
|
|
||||||
}
|
}
|
||||||
mMapView.setRouteOverlayVisible( false );
|
mMapView.setRouteOverlayVisible( false );
|
||||||
mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE );
|
mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE );
|
||||||
@@ -255,9 +261,12 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param mode 0:车头朝上状态;1:正北朝上模式
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void onNaviMapMode( int i ) {
|
public void onNaviMapMode( int mode ) {
|
||||||
|
Logger.i( TAG, "mode=" + mode );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -287,12 +296,10 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onMapTypeChanged( int type ) {
|
public void onMapTypeChanged( int type ) {
|
||||||
if ( type == AMap.MAP_TYPE_NAVI ) {
|
if ( type == 4 ) {
|
||||||
MogoMapListenerHandler.getInstance().onMapModeChanged( EnumMapUI.Type_Navi );
|
|
||||||
} else if ( type == AMap.MAP_TYPE_NORMAL ) {
|
|
||||||
MogoMapListenerHandler.getInstance().onMapModeChanged( EnumMapUI.Type_Light );
|
|
||||||
} else if ( type == AMap.MAP_TYPE_NIGHT ) {
|
|
||||||
MogoMapListenerHandler.getInstance().onMapModeChanged( EnumMapUI.Type_Light );
|
MogoMapListenerHandler.getInstance().onMapModeChanged( EnumMapUI.Type_Light );
|
||||||
|
} else if ( type == 3 ) {
|
||||||
|
MogoMapListenerHandler.getInstance().onMapModeChanged( EnumMapUI.Type_Night );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -300,4 +307,98 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
|||||||
public void onNaviViewShowMode( int i ) {
|
public void onNaviViewShowMode( int i ) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setTrafficEnabled( boolean visible ) {
|
||||||
|
if ( checkAMapView() ) {
|
||||||
|
mMapView.setTrafficLine( visible );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changeZoom( boolean zoom ) {
|
||||||
|
if ( checkAMapView() ) {
|
||||||
|
if ( zoom ) {
|
||||||
|
mMapView.zoomIn();
|
||||||
|
} else {
|
||||||
|
mMapView.zoomOut();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changeMapMode( EnumMapUI ui ) {
|
||||||
|
if ( ui == null ) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if ( checkAMapView() ) {
|
||||||
|
AMapNaviViewOptions options = mMapView.getViewOptions();
|
||||||
|
if ( options == null ) {
|
||||||
|
options = new AMapNaviViewOptions();
|
||||||
|
}
|
||||||
|
switch ( ui ) {
|
||||||
|
case CarUp_2D:
|
||||||
|
options.setTilt( 0 );
|
||||||
|
mMapView.setNaviMode( AMapNaviView.CAR_UP_MODE );
|
||||||
|
break;
|
||||||
|
case CarUp_3D:
|
||||||
|
options.setTilt( 60 );
|
||||||
|
mMapView.setNaviMode( AMapNaviView.CAR_UP_MODE );
|
||||||
|
break;
|
||||||
|
case NorthUP_2D:
|
||||||
|
options.setTilt( 0 );
|
||||||
|
mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE );
|
||||||
|
break;
|
||||||
|
case Type_Light:
|
||||||
|
options.setNaviNight( false );
|
||||||
|
break;
|
||||||
|
case Type_Night:
|
||||||
|
options.setNaviNight( true );
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
mMapView.setViewOptions( options );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean checkAMapView() {
|
||||||
|
if ( mMapView == null ) {
|
||||||
|
Logger.e( TAG, "高德mapView实例为空,请检查" );
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void moveToCurrentLocation() {
|
||||||
|
MogoLocation location = ALocationClient.getInstance( getContext() ).getLastKnowLocation();
|
||||||
|
if ( location != null ) {
|
||||||
|
mMapView.getMap().animateCamera( CameraUpdateFactory.newLatLng( new LatLng( location.getLatitude(), location.getLongitude() ) ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void showMyLocation( boolean visible ) {
|
||||||
|
if ( checkAMapView() ) {
|
||||||
|
mMapView.getMap().setMyLocationEnabled( true );
|
||||||
|
MyLocationStyle style = mMapView.getMap().getMyLocationStyle();
|
||||||
|
style.showMyLocation( visible );
|
||||||
|
style.myLocationIcon( BitmapDescriptorFactory.fromResource( R.drawable.ic_search_poi_location ) );
|
||||||
|
mMapView.getMap().setMyLocationStyle( style );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void recoverLockMode() {
|
||||||
|
if ( checkAMapView() ) {
|
||||||
|
mMapView.recoverLockMode();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void displayOverview() {
|
||||||
|
if ( checkAMapView() ) {
|
||||||
|
mMapView.displayOverview();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.amap.api.maps.model.MarkerOptions;
|
|||||||
import com.amap.api.maps.model.MyLocationStyle;
|
import com.amap.api.maps.model.MyLocationStyle;
|
||||||
import com.amap.api.navi.AMapNaviView;
|
import com.amap.api.navi.AMapNaviView;
|
||||||
import com.amap.api.navi.AMapNaviViewOptions;
|
import com.amap.api.navi.AMapNaviViewOptions;
|
||||||
|
import com.amap.api.navi.model.AMapNaviMarkerOptions;
|
||||||
import com.mogo.map.IMogoMap;
|
import com.mogo.map.IMogoMap;
|
||||||
import com.mogo.map.IMogoUiSettings;
|
import com.mogo.map.IMogoUiSettings;
|
||||||
import com.mogo.map.impl.amap.location.ALocationClient;
|
import com.mogo.map.impl.amap.location.ALocationClient;
|
||||||
@@ -33,19 +34,21 @@ import java.util.ArrayList;
|
|||||||
* <p>
|
* <p>
|
||||||
* 代理高德AMap
|
* 代理高德AMap
|
||||||
*/
|
*/
|
||||||
public class AMapWrapper implements IMogoMap, IMogoMapUIController {
|
public class AMapWrapper implements IMogoMap {
|
||||||
|
|
||||||
private static final String TAG = "AMapWrapper";
|
private static final String TAG = "AMapWrapper";
|
||||||
|
|
||||||
private static AMap sAMap;
|
private static AMap sAMap;
|
||||||
|
private IMogoMapUIController mUIcontroller;
|
||||||
private AMap mAMap;
|
private AMap mAMap;
|
||||||
private AMapNaviView mMapView;
|
private AMapNaviView mMapView;
|
||||||
private IMogoUiSettings mUiSettings;
|
private IMogoUiSettings mUiSettings;
|
||||||
|
|
||||||
public AMapWrapper( AMap map, AMapNaviView mapView ) {
|
public AMapWrapper( AMap map, AMapNaviView mapView, IMogoMapUIController controller ) {
|
||||||
this.mAMap = map;
|
this.mAMap = map;
|
||||||
sAMap = map;
|
sAMap = map;
|
||||||
this.mMapView = mapView;
|
this.mMapView = mapView;
|
||||||
|
mUIcontroller = controller;
|
||||||
// 设置实现自定义 info window
|
// 设置实现自定义 info window
|
||||||
mAMap.setInfoWindowAdapter( new AMapInfoWindowAdapter() );
|
mAMap.setInfoWindowAdapter( new AMapInfoWindowAdapter() );
|
||||||
}
|
}
|
||||||
@@ -67,7 +70,7 @@ public class AMapWrapper implements IMogoMap, IMogoMapUIController {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IMogoMapUIController getUIController() {
|
public IMogoMapUIController getUIController() {
|
||||||
return this;
|
return mUIcontroller;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -194,67 +197,6 @@ public class AMapWrapper implements IMogoMap, IMogoMapUIController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void setTrafficEnabled( boolean visible ) {
|
|
||||||
if ( checkAMap() ) {
|
|
||||||
mAMap.setTrafficEnabled( visible );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void changeZoom( boolean zoom ) {
|
|
||||||
if ( checkAMapView() ) {
|
|
||||||
if ( zoom ) {
|
|
||||||
mMapView.zoomIn();
|
|
||||||
} else {
|
|
||||||
mMapView.zoomOut();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void changeMapMode( EnumMapUI ui ) {
|
|
||||||
if ( ui == null ) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ( checkAMapView() ) {
|
|
||||||
AMapNaviViewOptions options = mMapView.getViewOptions();
|
|
||||||
if ( options == null ) {
|
|
||||||
options = new AMapNaviViewOptions();
|
|
||||||
}
|
|
||||||
switch ( ui ) {
|
|
||||||
case CarUp_2D:
|
|
||||||
options.setTilt( 0 );
|
|
||||||
mMapView.setNaviMode( AMapNaviView.CAR_UP_MODE );
|
|
||||||
break;
|
|
||||||
case CarUp_3D:
|
|
||||||
options.setTilt( 60 );
|
|
||||||
mMapView.setNaviMode( AMapNaviView.CAR_UP_MODE );
|
|
||||||
break;
|
|
||||||
case NorthUP_2D:
|
|
||||||
options.setTilt( 0 );
|
|
||||||
mMapView.setNaviMode( AMapNaviView.NORTH_UP_MODE );
|
|
||||||
break;
|
|
||||||
case Type_Light:
|
|
||||||
if ( checkAMap() ) {
|
|
||||||
mAMap.setMapType( AMap.MAP_TYPE_NORMAL );
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
case Type_Night:
|
|
||||||
if ( checkAMap() ) {
|
|
||||||
mAMap.setMapType( AMap.MAP_TYPE_NIGHT );
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
case Type_Navi:
|
|
||||||
if ( checkAMap() ) {
|
|
||||||
mAMap.setMapType( AMap.MAP_TYPE_NAVI );
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
mMapView.setViewOptions( options );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private boolean checkAMap() {
|
private boolean checkAMap() {
|
||||||
if ( mAMap == null ) {
|
if ( mAMap == null ) {
|
||||||
Logger.e( TAG, "高德map实例为空,请检查" );
|
Logger.e( TAG, "高德map实例为空,请检查" );
|
||||||
@@ -263,51 +205,7 @@ public class AMapWrapper implements IMogoMap, IMogoMapUIController {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean checkAMapView() {
|
|
||||||
if ( mMapView == null ) {
|
|
||||||
Logger.e( TAG, "高德mapView实例为空,请检查" );
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void moveToCurrentLocation() {
|
|
||||||
MogoLocation location = ALocationClient.getInstance( getContext() ).getLastKnowLocation();
|
|
||||||
if ( location != null ) {
|
|
||||||
mAMap.animateCamera( CameraUpdateFactory.newLatLng( new LatLng( location.getLatitude(), location.getLongitude() ) ) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private Context getContext() {
|
private Context getContext() {
|
||||||
if ( checkAMapView() ) {
|
return mMapView.getContext();
|
||||||
return mMapView.getContext();
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void showMyLocation( boolean visible ) {
|
|
||||||
if ( checkAMapView() ) {
|
|
||||||
mAMap.setMyLocationEnabled( true );
|
|
||||||
MyLocationStyle style = mAMap.getMyLocationStyle();
|
|
||||||
style.showMyLocation( visible );
|
|
||||||
style.myLocationIcon( BitmapDescriptorFactory.fromResource( R.drawable.ic_search_poi_location ) );
|
|
||||||
mAMap.setMyLocationStyle( style );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void recoverLockMode() {
|
|
||||||
if ( checkAMapView() ) {
|
|
||||||
mMapView.recoverLockMode();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void displayOverview() {
|
|
||||||
if ( checkAMapView() ) {
|
|
||||||
mMapView.displayOverview();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ public class NaviClient implements IMogoNavi {
|
|||||||
private MogoNaviConfig mMogoNaviConfig = new MogoNaviConfig();
|
private MogoNaviConfig mMogoNaviConfig = new MogoNaviConfig();
|
||||||
|
|
||||||
private static volatile NaviClient sInstance;
|
private static volatile NaviClient sInstance;
|
||||||
|
private boolean mIsRealNavi;
|
||||||
|
|
||||||
private NaviClient( Context context ) {
|
private NaviClient( Context context ) {
|
||||||
mAMapNavi = AMapNavi.getInstance( context );
|
mAMapNavi = AMapNavi.getInstance( context );
|
||||||
@@ -119,12 +120,14 @@ public class NaviClient implements IMogoNavi {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startNavi() {
|
public void startNavi( boolean isRealNavi ) {
|
||||||
if ( mAMapNaviListener.isStopped() ) {
|
if ( mAMapNaviListener.isStopped() ) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mAMapNavi.startNavi( isRealNavi() ? NaviType.GPS : NaviType.EMULATOR );
|
mIsRealNavi = isRealNavi;
|
||||||
|
mAMapNavi.startNavi( isRealNavi ? NaviType.GPS : NaviType.EMULATOR );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -146,10 +149,7 @@ public class NaviClient implements IMogoNavi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRealNavi() {
|
public boolean isRealNavi() {
|
||||||
if ( mMogoNaviConfig != null ) {
|
return mIsRealNavi;
|
||||||
return mMogoNaviConfig.isRealNavi();
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void handleClickedPolyline( Polyline polyline ) {
|
public void handleClickedPolyline( Polyline polyline ) {
|
||||||
|
|||||||
@@ -58,8 +58,10 @@ public interface IMogoNavi {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 开始导航
|
* 开始导航
|
||||||
|
*
|
||||||
|
* @param isRealNavi true - 实时导航 false - 模拟导航
|
||||||
*/
|
*/
|
||||||
void startNavi();
|
void startNavi( boolean isRealNavi );
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否正在导航
|
* 是否正在导航
|
||||||
|
|||||||
@@ -33,13 +33,6 @@ public class MogoNaviConfig {
|
|||||||
*/
|
*/
|
||||||
private boolean multipleRoute = true;
|
private boolean multipleRoute = true;
|
||||||
|
|
||||||
/**
|
|
||||||
* 是否是正式的导航
|
|
||||||
* <p>
|
|
||||||
* false 为模拟导航
|
|
||||||
*/
|
|
||||||
private boolean realNavi = true;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否躲避拥堵
|
* 是否躲避拥堵
|
||||||
*/
|
*/
|
||||||
@@ -84,17 +77,6 @@ public class MogoNaviConfig {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 导航模式
|
|
||||||
*
|
|
||||||
* @param realNavi true - 正式导航, false - 模拟导航
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
public MogoNaviConfig realNavi( boolean realNavi ) {
|
|
||||||
this.realNavi = realNavi;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isCongestion() {
|
public boolean isCongestion() {
|
||||||
return congestion;
|
return congestion;
|
||||||
}
|
}
|
||||||
@@ -114,8 +96,4 @@ public class MogoNaviConfig {
|
|||||||
public boolean isMultipleRoute() {
|
public boolean isMultipleRoute() {
|
||||||
return multipleRoute;
|
return multipleRoute;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isRealNavi() {
|
|
||||||
return realNavi;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,12 +30,7 @@ public enum EnumMapUI {
|
|||||||
/**
|
/**
|
||||||
* 夜晚模式
|
* 夜晚模式
|
||||||
*/
|
*/
|
||||||
Type_Night( 4, 3 ),
|
Type_Night( 4, 3 );
|
||||||
|
|
||||||
/**
|
|
||||||
* 导航模式
|
|
||||||
*/
|
|
||||||
Type_Navi( 5, 5 );
|
|
||||||
|
|
||||||
private int next;
|
private int next;
|
||||||
private int code;
|
private int code;
|
||||||
|
|||||||
@@ -82,9 +82,9 @@ public class MogoNavi implements IMogoNavi {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startNavi() {
|
public void startNavi( boolean isRealNavi ) {
|
||||||
if ( mDelegate != null ) {
|
if ( mDelegate != null ) {
|
||||||
mDelegate.startNavi();
|
mDelegate.startNavi( isRealNavi );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
|||||||
mMogoMapService.registerHostMapListener( mMogoModuleHandler );
|
mMogoMapService.registerHostMapListener( mMogoModuleHandler );
|
||||||
mMogoMapService.registerHostNaviListener( mMogoModuleHandler );
|
mMogoMapService.registerHostNaviListener( mMogoModuleHandler );
|
||||||
}
|
}
|
||||||
mMogoModuleHandler.loadMap( R.id.module_main_id_map_container );
|
mMogoModuleHandler.loadMap( R.id.module_main_id_map_fragment_container );
|
||||||
|
|
||||||
Collection< IMogoModuleProvider > providers = mMogoModuleHandler.loadCards();
|
Collection< IMogoModuleProvider > providers = mMogoModuleHandler.loadCards();
|
||||||
for ( IMogoModuleProvider provider : providers ) {
|
for ( IMogoModuleProvider provider : providers ) {
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
app:layout_constraintTop_toTopOf="parent" />
|
app:layout_constraintTop_toTopOf="parent" />
|
||||||
|
|
||||||
<FrameLayout
|
<FrameLayout
|
||||||
android:id="@+id/module_main_id_map_container"
|
android:id="@+id/module_main_id_map_fragment_container"
|
||||||
android:layout_width="0dp"
|
android:layout_width="0dp"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
app:layout_constraintLeft_toRightOf="@+id/module_main_id_fragment_container"
|
app:layout_constraintLeft_toRightOf="@+id/module_main_id_fragment_container"
|
||||||
|
|||||||
@@ -96,7 +96,12 @@ public interface IMogoMapService extends IProvider, IMogoMapListenerRegister, IM
|
|||||||
*
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
IMogoMarkerManager getMarkerManager(Context context);
|
IMogoMarkerManager getMarkerManager( Context context );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地图UI控制
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
IMogoMapUIController getMapUIController();
|
IMogoMapUIController getMapUIController();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user