nothing
This commit is contained in:
@@ -75,7 +75,8 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
AMap.OnPolylineClickListener,
|
||||
AMapNaviViewListener,
|
||||
AMapMessageListener,
|
||||
AMap.OnCameraChangeListener {
|
||||
AMap.OnCameraChangeListener,
|
||||
AMap.OnMyLocationChangeListener{
|
||||
|
||||
private static final String TAG = "AMapNaviViewWrapper";
|
||||
|
||||
@@ -176,6 +177,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
aMap.setOnPOIClickListener( this );
|
||||
aMap.setOnMapClickListener( this );
|
||||
aMap.setOnCameraChangeListener( this );
|
||||
aMap.setOnMyLocationChangeListener( this );
|
||||
}
|
||||
AMapMessageManager.getInstance().registerAMapMessageListener( this );
|
||||
}
|
||||
@@ -469,7 +471,7 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
mMapView.getMap().setMyLocationEnabled( true );
|
||||
MyLocationStyle style = mMapView.getMap().getMyLocationStyle();
|
||||
style.myLocationType( MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER );
|
||||
style.interval( 500 );
|
||||
style.interval( 1000 );
|
||||
style.anchor( 0.5F, 0.5F );
|
||||
style.strokeColor( Color.TRANSPARENT );
|
||||
style.strokeWidth( 0 );
|
||||
@@ -702,4 +704,9 @@ public class AMapNaviViewWrapper implements IMogoMapView,
|
||||
}
|
||||
return AMapUtils.calculateLineDistance( ObjectUtils.fromMogo2( p1 ), ObjectUtils.fromMogo2( p2 ) );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onMyLocationChange( Location location ) {
|
||||
NaviClient.getInstance( getContext() ).syncCarLocation( location );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,15 @@ package com.mogo.map.impl.amap.navi;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
import android.location.Location;
|
||||
|
||||
import com.amap.api.maps.model.Polyline;
|
||||
import com.amap.api.navi.AMapNavi;
|
||||
import com.amap.api.navi.enums.AimLessMode;
|
||||
import com.amap.api.navi.enums.NaviType;
|
||||
import com.amap.api.navi.model.NaviLatLng;
|
||||
import com.mogo.map.MogoLatLng;
|
||||
import com.mogo.map.impl.amap.utils.ObjectUtils;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.map.navi.MogoCalculatePath;
|
||||
import com.mogo.map.navi.MogoNaviConfig;
|
||||
@@ -44,6 +45,9 @@ public class NaviClient implements IMogoNavi {
|
||||
private static volatile NaviClient sInstance;
|
||||
private boolean mIsRealNavi;
|
||||
|
||||
private Location mCarLocation;
|
||||
private IMogoCarLocationChangedListener mCarLocationChangedListener;
|
||||
|
||||
private NaviClient( Context context ) {
|
||||
mAMapNavi = AMapNavi.getInstance( context );
|
||||
//mAMapNavi.setEmulatorNaviSpeed( 120 );
|
||||
@@ -165,7 +169,8 @@ public class NaviClient implements IMogoNavi {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override public List<MogoLatLng> getCalculatedPathPos() {
|
||||
@Override
|
||||
public List< MogoLatLng > getCalculatedPathPos() {
|
||||
if ( mAMapNaviListener != null ) {
|
||||
return mAMapNaviListener.getCalculatedPathPos();
|
||||
}
|
||||
@@ -216,8 +221,30 @@ public class NaviClient implements IMogoNavi {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MogoLatLng getCarLocation() {
|
||||
if ( mCarLocation != null ) {
|
||||
synchronized ( mCarLocation ) {
|
||||
return new MogoLatLng( mCarLocation.getLatitude(), mCarLocation.getLongitude() );
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCarLocationChangedListener( IMogoCarLocationChangedListener listener ) {
|
||||
mCarLocationChangedListener = listener;
|
||||
}
|
||||
|
||||
// -- end
|
||||
|
||||
public void syncCarLocation( Location location ) {
|
||||
mCarLocation = location;
|
||||
if ( mCarLocationChangedListener != null ) {
|
||||
mCarLocationChangedListener.onCarLocationChanged( getCarLocation() );
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkAMapNavi() {
|
||||
if ( mAMapNavi == null ) {
|
||||
Logger.e( TAG, "高德导航实例为空!!!" );
|
||||
@@ -236,8 +263,8 @@ public class NaviClient implements IMogoNavi {
|
||||
}
|
||||
}
|
||||
|
||||
public void startAimlessMode(int cameraAndSpecialroadDetected) {
|
||||
mAMapNavi.startAimlessMode(cameraAndSpecialroadDetected);
|
||||
public void startAimlessMode( int cameraAndSpecialroadDetected ) {
|
||||
mAMapNavi.startAimlessMode( cameraAndSpecialroadDetected );
|
||||
}
|
||||
|
||||
public void stopAimlessMode() {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
import com.mogo.map.MogoLatLng;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-03-14
|
||||
* <p>
|
||||
* 车辆位置变化
|
||||
*/
|
||||
public interface IMogoCarLocationChangedListener {
|
||||
|
||||
void onCarLocationChanged( MogoLatLng latLng );
|
||||
}
|
||||
@@ -80,7 +80,6 @@ public interface IMogoNavi {
|
||||
List< MogoCalculatePath > getCalculatedStrategies();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取路线坐标点
|
||||
*
|
||||
@@ -89,7 +88,6 @@ public interface IMogoNavi {
|
||||
List< MogoLatLng > getCalculatedPathPos();
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取列表Item点击回调
|
||||
*
|
||||
@@ -117,20 +115,37 @@ public interface IMogoNavi {
|
||||
|
||||
/**
|
||||
* 导航配置
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
MogoNaviConfig getNaviConfig();
|
||||
|
||||
/**
|
||||
* 设置播报模式
|
||||
*
|
||||
* @param mode
|
||||
* @return
|
||||
*/
|
||||
boolean setBroadcastMode(int mode);
|
||||
boolean setBroadcastMode( int mode );
|
||||
|
||||
/**
|
||||
* 获取导航沿途路线的点
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<MogoLatLng> getNaviPathCoordinates();
|
||||
List< MogoLatLng > getNaviPathCoordinates();
|
||||
|
||||
/**
|
||||
* 获取车标经纬度
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
MogoLatLng getCarLocation();
|
||||
|
||||
/**
|
||||
* 注册车辆位置变化监听,非业务使用
|
||||
*
|
||||
* @param listener
|
||||
*/
|
||||
void registerCarLocationChangedListener( IMogoCarLocationChangedListener listener );
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@ import android.content.Context;
|
||||
import android.graphics.Rect;
|
||||
|
||||
import com.mogo.map.impl.amap.navi.NaviClient;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.map.navi.MogoCalculatePath;
|
||||
import com.mogo.map.navi.MogoNaviConfig;
|
||||
@@ -164,4 +165,19 @@ public class MogoNavi implements IMogoNavi {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public MogoLatLng getCarLocation() {
|
||||
if ( mDelegate != null ) {
|
||||
return mDelegate.getCarLocation();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCarLocationChangedListener( IMogoCarLocationChangedListener listener ) {
|
||||
if ( mDelegate != null ) {
|
||||
mDelegate.registerCarLocationChangedListener( listener );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.mogo.module.extensions.entrance;
|
||||
|
||||
import android.graphics.Color;
|
||||
import android.os.Bundle;
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
@@ -21,6 +22,8 @@ import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.map.navi.MogoNaviInfo;
|
||||
import com.mogo.map.navi.MogoTraffic;
|
||||
import com.mogo.map.overlay.IMogoPolyline;
|
||||
import com.mogo.map.overlay.MogoPolylineOptions;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
import com.mogo.module.common.MogoModulePaths;
|
||||
@@ -40,7 +43,10 @@ import com.mogo.service.module.IMogoModuleProvider;
|
||||
import com.mogo.service.module.IMogoRegisterCenter;
|
||||
import com.mogo.service.statusmanager.IMogoStatusManager;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
@@ -93,6 +99,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
|
||||
private boolean mIsLock = true;
|
||||
private TextView ivMode;
|
||||
|
||||
private IMogoPolyline iMogoPolyline;
|
||||
|
||||
@Override
|
||||
protected int getLayoutId() {
|
||||
return R.layout.module_ext_layout_entrance;
|
||||
|
||||
@@ -225,6 +225,7 @@ public class MainActivity extends MvpActivity< MainView, MainPresenter > impleme
|
||||
mMogoMapService.getHostListenerRegister().registerHostNaviListener( mMogoModuleHandler );
|
||||
mMogoMapService.getHostListenerRegister().registerHostAimlessModeListener( mMogoModuleHandler );
|
||||
mMogoMapService.getHostListenerRegister().registerMarkerClickListener( this );
|
||||
mMogoMapService.getNavi( this ).registerCarLocationChangedListener( mMogoModuleHandler );
|
||||
}
|
||||
|
||||
mMogoModuleHandler.setMapLoadedCallback( () -> {
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarker;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoAimlessModeListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.service.module.IMogoModuleProvider;
|
||||
|
||||
@@ -24,7 +25,8 @@ public interface MogoModulesHandler extends IMogoMapListener,
|
||||
IMogoNaviListener,
|
||||
IMogoLocationListener,
|
||||
IMogoMarkerClickListener,
|
||||
IMogoAimlessModeListener {
|
||||
IMogoAimlessModeListener,
|
||||
IMogoCarLocationChangedListener {
|
||||
|
||||
/**
|
||||
* 地图加载完成回调
|
||||
|
||||
@@ -17,6 +17,7 @@ import com.mogo.map.marker.IMogoMarker;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.model.MogoPoi;
|
||||
import com.mogo.map.navi.IMogoAimlessModeListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.map.navi.MogoCongestionInfo;
|
||||
import com.mogo.map.navi.MogoNaviInfo;
|
||||
@@ -624,8 +625,12 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
}
|
||||
while ( iterator.hasNext() ) {
|
||||
IMogoAimlessModeListener listener = iterator.next();
|
||||
if ( listener == null ) {
|
||||
listener.onUpdateTraffic2( traffic );
|
||||
if ( listener != null ) {
|
||||
try {
|
||||
listener.onUpdateTraffic2( traffic );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -638,8 +643,30 @@ public class MogoModulesManager implements MogoModulesHandler,
|
||||
}
|
||||
while ( iterator.hasNext() ) {
|
||||
IMogoAimlessModeListener listener = iterator.next();
|
||||
if ( listener == null ) {
|
||||
listener.onUpdateCongestion( info );
|
||||
if ( listener != null ) {
|
||||
try {
|
||||
listener.onUpdateCongestion( info );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onCarLocationChanged( MogoLatLng latLng ) {
|
||||
Iterator< IMogoCarLocationChangedListener > iterator = MogoRegisterCenterHandler.getInstance().getCarLocationChangedListener();
|
||||
if ( iterator == null ) {
|
||||
return;
|
||||
}
|
||||
while ( iterator.hasNext() ) {
|
||||
IMogoCarLocationChangedListener listener = iterator.next();
|
||||
if ( listener != null ) {
|
||||
try {
|
||||
listener.onCarLocationChanged( latLng );
|
||||
} catch ( Exception e ) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoAimlessModeListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.service.MogoServicePaths;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
@@ -73,12 +74,22 @@ public class MogoRegisterCenter implements IMogoRegisterCenter {
|
||||
|
||||
@Override
|
||||
public void registerMogoAimlessModeListener( String tag, IMogoAimlessModeListener listener ) {
|
||||
|
||||
MogoRegisterCenterHandler.getInstance().registerMogoAimlessModeListener( tag, listener );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterMogoAimlessModeListener( String tag ) {
|
||||
MogoRegisterCenterHandler.getInstance().unregisterMogoAimlessModeListener( tag );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
|
||||
MogoRegisterCenterHandler.getInstance().registerCarLocationChangedListener( tag, listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
|
||||
MogoRegisterCenterHandler.getInstance().unregisterCarLocationChangedListener( tag, listener );
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -6,6 +6,7 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoAimlessModeListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
import com.mogo.service.module.IMogoModuleLifecycle;
|
||||
import com.mogo.service.module.IMogoRegisterCenter;
|
||||
@@ -30,6 +31,7 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
private Map< String, IMogoLocationListener > mLocation = new HashMap<>();
|
||||
private Map< String, IMogoMarkerClickListener > mMarker = new HashMap<>();
|
||||
private Map< String, IMogoAimlessModeListener > mAimless = new HashMap<>();
|
||||
private Map< String, IMogoCarLocationChangedListener > mCarLocations = new HashMap<>();
|
||||
|
||||
private MogoRegisterCenterHandler() {
|
||||
}
|
||||
@@ -110,6 +112,16 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
mAimless.remove( tag );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
|
||||
mCarLocations.put( tag, listener );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void unregisterCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener ) {
|
||||
mCarLocations.remove( tag );
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init( Context context ) {
|
||||
}
|
||||
@@ -157,4 +169,11 @@ public class MogoRegisterCenterHandler implements IMogoRegisterCenter {
|
||||
public Iterator< IMogoAimlessModeListener > getAimlessModeListeners() {
|
||||
return mAimless.values().iterator();
|
||||
}
|
||||
|
||||
|
||||
public Iterator< IMogoCarLocationChangedListener > getCarLocationChangedListener() {
|
||||
return mCarLocations.values().iterator();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,7 @@ import com.mogo.map.listener.IMogoMapListener;
|
||||
import com.mogo.map.location.IMogoLocationListener;
|
||||
import com.mogo.map.marker.IMogoMarkerClickListener;
|
||||
import com.mogo.map.navi.IMogoAimlessModeListener;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener;
|
||||
import com.mogo.map.navi.IMogoNaviListener;
|
||||
|
||||
/**
|
||||
@@ -110,5 +111,20 @@ public interface IMogoRegisterCenter extends IProvider {
|
||||
*/
|
||||
void unregisterMogoAimlessModeListener( String tag );
|
||||
|
||||
/**
|
||||
* 注册车辆位置变化监听
|
||||
*
|
||||
* @param tag
|
||||
* @param listener
|
||||
*/
|
||||
void registerCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener );
|
||||
|
||||
/**
|
||||
* 注销车辆位置变化监听
|
||||
*
|
||||
* @param tag
|
||||
* @param listener
|
||||
*/
|
||||
void unregisterCarLocationChangedListener( String tag, IMogoCarLocationChangedListener listener );
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user