@@ -1,32 +0,0 @@
|
||||
package com.mogo.commons.layoutinflater;
|
||||
|
||||
import android.content.Context;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import androidx.annotation.LayoutRes;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/12/23
|
||||
*
|
||||
* 系统实现的布局加载
|
||||
*/
|
||||
class OriginalLayoutInflater {
|
||||
|
||||
private static LayoutInflater sLayoutInflater;
|
||||
|
||||
public static void init( Context context ) {
|
||||
sLayoutInflater = LayoutInflater.from( context ).cloneInContext( context );
|
||||
}
|
||||
|
||||
public static View inflate( @LayoutRes int layoutId, ViewGroup container, boolean attachToRoot ) {
|
||||
return sLayoutInflater.inflate( layoutId, container, attachToRoot );
|
||||
}
|
||||
|
||||
public static View inflate( @LayoutRes int layoutId, ViewGroup container ) {
|
||||
return sLayoutInflater.inflate( layoutId, container, container != null );
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
-keep class com.mogo.map.impl.custom.AMapUiSettingsWrapper{*;}
|
||||
|
||||
#-----自研地图-----
|
||||
-keepattributes EnclosingMethod
|
||||
@@ -13,5 +12,3 @@
|
||||
|
||||
-keepattributes Exceptions,InnerClasses,...
|
||||
-keep class com.zhidaoauto.map.sdk.open.camera.CameraPosition{ *; }
|
||||
-keep class com.zhidaoauto.map.sdk.open.camera.CameraPosition$B { *; }
|
||||
-keep class com.zhidaoauto.map.sdk.open.camera.CameraPosition$C { *; }
|
||||
@@ -30,12 +30,12 @@ import com.mogo.eagle.core.utilcode.util.GsonUtils;
|
||||
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
|
||||
import com.mogo.map.IMogoMap;
|
||||
import com.mogo.map.IMogoMapView;
|
||||
import com.mogo.map.impl.custom.navi.NaviClient;
|
||||
import com.mogo.map.impl.custom.utils.MogoMapUtils;
|
||||
import com.mogo.map.impl.custom.utils.ObjectUtils;
|
||||
import com.mogo.map.impl.custom.utils.PointInterpolatorUtil;
|
||||
import com.mogo.map.impl.custom.utils.ResIdCache;
|
||||
import com.mogo.map.listener.MogoMapListenerHandler;
|
||||
import com.mogo.map.navi.MogoCarLocationChangedListenerRegister;
|
||||
import com.mogo.map.uicontroller.CarCursorOption;
|
||||
import com.mogo.map.uicontroller.EnumMapUI;
|
||||
import com.mogo.map.uicontroller.IMogoMapUIController;
|
||||
@@ -129,65 +129,9 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
MapAutoViewHelper options = mMapView.getMapAutoViewHelper();
|
||||
if (options != null) {
|
||||
options.setZoomGesturesEnabled(true);
|
||||
// 设置是否开启自动黑夜模式切换,默认为false,不自动切换
|
||||
// options.setAutoSwitchStyle(false);
|
||||
// 设置6秒后是否自动锁车
|
||||
// options.setAutoLockCar( false );
|
||||
// 设置路线上的摄像头气泡是否显示
|
||||
// options.setCameraBubbleShow( true );
|
||||
// 设置路线相关的配置属性,如:路线的路况颜色,路线上是否显示摄像头气泡等。
|
||||
// options.setRouteOverlayOptions( MapStyleUtils.getRouteOverlayOptions() );
|
||||
// 设置自车的图片对象
|
||||
options.setMyLocationStyle(options.getMyLocationStyle().myLocationIcon(DEFAULT_OPTION.getCarCursorRes()));
|
||||
// 设置指南针图标否在导航界面显示,默认显示。true,显示;false,隐藏。
|
||||
// options.hiddenDirection();
|
||||
// 黑夜模式
|
||||
// options.setMapStyle(MapAutoApi.MAP_STYLE_NIGHT);
|
||||
//设置路况光柱条是否显示(只适用于驾车导航,需要联网)。
|
||||
// options.setTrafficBarEnabled( false );
|
||||
// 设置[实时交通图层开关按钮]是否显示(只适用于驾车导航,需要联网)。
|
||||
// options.setTrafficLayerEnabled( false );
|
||||
// 设置导航界面是否显示路线全览按钮。
|
||||
// options.setRouteListButtonShow( false );
|
||||
// 设置导航状态下屏幕是否一直开启。
|
||||
// options.setScreenAlwaysBright( true );
|
||||
// 设置交通播报是否打开(只适用于驾车导航,需要联网)。
|
||||
// options.setTrafficInfoUpdateEnabled( true );
|
||||
// 设置摄像头播报是否打开(只适用于驾车导航)。
|
||||
// options.setCameraInfoUpdateEnabled( true );
|
||||
// 设置菜单按钮是否在导航界面显示。
|
||||
// options.setSettingMenuEnabled( false );
|
||||
// 设置是否绘制显示交通路况的线路(彩虹线),拥堵-红色,畅通-绿色,缓慢-黄色,未知-蓝色。默认不绘制彩虹线。
|
||||
// options.setTrafficLine( true );
|
||||
// 设置是否绘制牵引线(当前位置到目的地的指引线)。默认不绘制牵引线。
|
||||
// options.setLeaderLineEnabled( -1 );
|
||||
// 设置导航界面UI是否显示。
|
||||
// options.setLayoutVisible( false );
|
||||
// 设置是否自动画路
|
||||
// options.setAutoDrawRoute( false );
|
||||
// 设置是否显示路口放大图(实景图)
|
||||
// options.setRealCrossDisplayShow( false );
|
||||
// 设置是否显示路口放大图(路口模型图)
|
||||
// options.setModeCrossDisplayShow( false );
|
||||
// 设置是否显示道路信息view
|
||||
// options.setLaneInfoShow( false );
|
||||
// 设置是否自动改变缩放等级
|
||||
// options.setAutoChangeZoom( false );
|
||||
// 设置是否自动全览模式,即在算路成功后自动进入全览模式
|
||||
// options.setAutoDisplayOverview( false );
|
||||
// 设置路线转向箭头隐藏和显示
|
||||
// options.setNaviArrowVisible( false );
|
||||
// 通过路线是否自动置灰,仅支持驾车导航
|
||||
// options.setAfterRouteAutoGray( true );
|
||||
// options.setZoom(((int) mDefaultZoomLevel));
|
||||
// options.setPointToCenter( 0.5D, 0.5D );
|
||||
// 2D模式
|
||||
// options.setMapViewPerspective(MapAutoApi.MAP_PERSPECTIVE_2D);
|
||||
// mMapView.setViewOptions( options );
|
||||
}
|
||||
// mMapView.setRouteOverlayVisible( false );
|
||||
// mMapView.setCarOverlayVisible( false );
|
||||
// setUIMode(EnumMapUI.CarUp_2D);
|
||||
}
|
||||
|
||||
private void initListeners() {
|
||||
@@ -198,7 +142,6 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
mMapView.setOnMapTouchListener(this);
|
||||
mMapView.setOnMapClickListener(this);
|
||||
mMapView.getLocationClient().registerListener(this);
|
||||
// mMapView.getLocationClient().registerGpsListener( this );
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ZOOM);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_ROTATE);
|
||||
mMapView.registerListener(this, MapAutoApi.LISTENER_TYPE_3D);
|
||||
@@ -206,18 +149,6 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
mMapView.setOnMapStyleListener(this);
|
||||
mMapView.setOnMapViewVisualAngleChangeListener(this);
|
||||
Logger.d(TAG, "styleop - initListeners - setOnMapStyleListener - view %s", mMapView);
|
||||
|
||||
// mMapView.setOnPolylineClickListener( this );
|
||||
// mMapView.setAMapNaviViewListener( this );
|
||||
//
|
||||
// final AMap aMap = mMapView.getMap();
|
||||
// if ( aMap != null ) {
|
||||
// aMap.setOnPOIClickListener( this );
|
||||
// aMap.setOnMapClickListener( this );
|
||||
// aMap.setOnCameraChangeListener( this );
|
||||
// aMap.setOnMyLocationChangeListener( this );
|
||||
// }
|
||||
// AMapMessageManager.getInstance().registerAMapMessageListener( this );
|
||||
}
|
||||
|
||||
private Context getContext() {
|
||||
@@ -763,7 +694,9 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
}
|
||||
|
||||
|
||||
NaviClient.getInstance(getContext()).syncCarLocation(sysLocation);
|
||||
if (MogoCarLocationChangedListenerRegister.getInstance().getListener() != null) {
|
||||
MogoCarLocationChangedListenerRegister.getInstance().getListener().onCarLocationChanged2(sysLocation);
|
||||
}
|
||||
if (checkAMapView() && mMapLoaded) {
|
||||
// 地图初始化完成后,每隔5s自动判断当前地图的模式
|
||||
if (mIsFirstLocated) {
|
||||
@@ -785,9 +718,6 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
|
||||
@Override
|
||||
public void onMapClick(@Nullable LonLatPoint lonLatPoint) {
|
||||
if (InterceptorHandler.getInstance().ignoreMapClicked(getContext())) {
|
||||
return;
|
||||
}
|
||||
MogoMapListenerHandler.getInstance().onMapClick(ObjectUtils.fromAMap(lonLatPoint));
|
||||
}
|
||||
|
||||
@@ -1067,26 +997,6 @@ public class AMapViewWrapper implements IMogoMapView,
|
||||
// Log.i("timer-matchRoad-4", "cost " + (System.currentTimeMillis() - start) + "ms roadId: " + singlePointRoadInfo.getRoadId());
|
||||
roadCache = new RoadCacheWrapper(singlePointRoadInfo.getCoords());
|
||||
roadCache.setLaneWidth(singlePointRoadInfo.getLaneWidth());
|
||||
// 在地图上画点的测试方法
|
||||
// try {
|
||||
// PolylineOptions options = new PolylineOptions( );
|
||||
// options.setColor( colors[colorIndex++] );
|
||||
// options.setId( "test-line"+new Random( ).nextLong() );
|
||||
// options.setGps( true );
|
||||
// options.setLineWidth( 3 );
|
||||
// List<LonLatPoint> points = singlePointRoadInfo.getCoords();
|
||||
// ArrayList< LonLat > lonLats = new ArrayList<>( );
|
||||
// for ( LonLatPoint point : points ) {
|
||||
// lonLats.add( new LonLat( point.getLongitude(), point.getLatitude() ) );
|
||||
// }
|
||||
// options.setLonLats( lonLats );
|
||||
// mMapView.getMapAutoViewHelper().drawThickLine( options );
|
||||
// if (colorIndex >= colors.length) {
|
||||
// colorIndex = 0;
|
||||
// }
|
||||
// } catch( Exception e ){
|
||||
// e.printStackTrace();
|
||||
// }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -148,11 +148,6 @@ public class AMapWrapper implements IMogoMap {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 地图导航时,忽略参数
|
||||
if (InterceptorHandler.getInstance().ignoreAddMarkersMoveToCenterParameters(getContext())) {
|
||||
moveToCenter = false;
|
||||
}
|
||||
|
||||
ArrayList<Marker> markers = new ArrayList<>();
|
||||
ArrayList<MarkerOptions> markerOptions = new ArrayList<>();
|
||||
ArrayList<IMogoMarker> mogoMarkers = new ArrayList<>();
|
||||
|
||||
@@ -9,14 +9,10 @@ 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.PoiSearchClient;
|
||||
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.geo.IMogoGeoSearch;
|
||||
import com.mogo.map.search.poisearch.IMogoPoiSearch;
|
||||
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
|
||||
@@ -52,22 +48,12 @@ public class CustomMapApiBuilder implements IMogoMapApiBuilder {
|
||||
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 IMogoAimless getAimless(Context context) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public IMogoMapView getMapView(Context context) {
|
||||
Log.d(TAG, "setDebugMode==true");
|
||||
@@ -77,8 +63,8 @@ public class CustomMapApiBuilder implements IMogoMapApiBuilder {
|
||||
//.setDataFileSource(1) //todo 1-使用本地地图数据,0-使用在线地图数据
|
||||
.setCoordinateType(MapParams.COORDINATETYPE_GCJ02)
|
||||
.setPerspectiveMode(MapParams.MAP_PERSPECTIVE_3D)
|
||||
// .setZoom( 20 )
|
||||
// .setPointToCenter( 0.734375f, 0.5f )
|
||||
// .setZoom( 20 )
|
||||
// .setPointToCenter( 0.734375f, 0.5f )
|
||||
.setPointToCenter(0.5f, 0.5f) //todo 2D模式下需要注意ADAS部分遮挡
|
||||
.setStyleMode(MapParams.MAP_STYLE_VR);
|
||||
|
||||
@@ -100,11 +86,6 @@ public class CustomMapApiBuilder implements IMogoMapApiBuilder {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getResIdByIconType(Context context, int iconType) {
|
||||
return IconTypeUtils.getResIdByIconType(context, iconType);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void init(Context context) {
|
||||
Logger.d(TAG, "init");
|
||||
|
||||
@@ -1,45 +0,0 @@
|
||||
package com.mogo.map.impl.custom;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-27
|
||||
* <p>
|
||||
* 操作拦截器
|
||||
*/
|
||||
public interface IInterceptor {
|
||||
|
||||
/**
|
||||
* 是否忽略添加多个marker时聚拢参数
|
||||
* <p>
|
||||
* 导航时:不需要聚拢
|
||||
*
|
||||
* @return true - 忽略 false - 不忽略
|
||||
*/
|
||||
boolean ignoreAddMarkersMoveToCenterParameters( Context context );
|
||||
|
||||
/**
|
||||
* 导航时,是否响应 poi 点击
|
||||
*
|
||||
* @param context
|
||||
* @return
|
||||
*/
|
||||
boolean ignorePoiClicked( Context context );
|
||||
|
||||
/**
|
||||
* 导航时,是否响应地图点击
|
||||
*
|
||||
* @param context
|
||||
* @return
|
||||
*/
|
||||
boolean ignoreMapClicked( Context context );
|
||||
|
||||
/**
|
||||
* 请求绘制路线
|
||||
*
|
||||
* @param context
|
||||
* @return
|
||||
*/
|
||||
boolean ignoreDrawRouteOverlay( Context context );
|
||||
}
|
||||
@@ -1,59 +0,0 @@
|
||||
package com.mogo.map.impl.custom;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-27
|
||||
* <p>
|
||||
* 操作拦截器
|
||||
*/
|
||||
public class InterceptorHandler implements IInterceptor {
|
||||
|
||||
private static volatile InterceptorHandler sInstance;
|
||||
|
||||
private Context mContext;
|
||||
|
||||
private InterceptorHandler() {
|
||||
}
|
||||
|
||||
public static InterceptorHandler getInstance() {
|
||||
if ( sInstance == null ) {
|
||||
synchronized ( InterceptorHandler.class ) {
|
||||
if ( sInstance == null ) {
|
||||
sInstance = new InterceptorHandler();
|
||||
}
|
||||
}
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public synchronized void release() {
|
||||
sInstance = null;
|
||||
}
|
||||
|
||||
public void init( Context context ) {
|
||||
mContext = context;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean ignoreAddMarkersMoveToCenterParameters( Context context ) {
|
||||
return false;//NaviClient.getInstance( context ).isNaviing();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean ignorePoiClicked( Context context ) {
|
||||
return false;//NaviClient.getInstance( context ).isNaviing();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean ignoreMapClicked( Context context ) {
|
||||
return false;//NaviClient.getInstance( context ).isNaviing();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean ignoreDrawRouteOverlay( Context context ) {
|
||||
return false;//NaviClient.getInstance( context ).isNaviing();
|
||||
}
|
||||
}
|
||||
@@ -59,12 +59,6 @@ public class ALocationClient implements IMogoLocationClient {
|
||||
return;
|
||||
}
|
||||
if ( mClient != null ) {
|
||||
// AMapLocationClientOption option = new AMapLocationClientOption();
|
||||
// option.setLocationMode( AMapLocationClientOption.AMapLocationMode.Hight_Accuracy );
|
||||
// option.setNeedAddress( true );
|
||||
// option.setGpsFirst( true );
|
||||
// option.setInterval( interval );
|
||||
// mClient.setLocationOption( option );
|
||||
mClient.start();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,137 +0,0 @@
|
||||
package com.mogo.map.impl.custom.navi;
|
||||
|
||||
import android.content.Context;
|
||||
import android.location.Location;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
|
||||
import com.mogo.map.impl.custom.AMapWrapper;
|
||||
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.map.navi.MogoCarLocationChangedListenerRegister;
|
||||
import com.mogo.map.navi.MogoNaviConfig;
|
||||
import com.mogo.map.navi.OnCalculatePathItemClickInteraction;
|
||||
import com.zhidaoauto.map.sdk.open.view.MapAutoViewHelper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-25
|
||||
* <p>
|
||||
* 自研导航
|
||||
*/
|
||||
public class NaviClient implements IMogoNavi {
|
||||
|
||||
private static final String TAG = "NaviClient";
|
||||
|
||||
private MapAutoViewHelper mAMapNavi;
|
||||
|
||||
/**
|
||||
* 导航策略配置
|
||||
*/
|
||||
private MogoNaviConfig mMogoNaviConfig = new MogoNaviConfig();
|
||||
|
||||
private static volatile NaviClient sInstance;
|
||||
private Location mCarLocation = new Location("GPS");
|
||||
|
||||
private NaviClient(Context context) {
|
||||
mCarLocation.setLongitude(116.97000);
|
||||
mCarLocation.setLatitude(39.97000);
|
||||
mAMapNavi = AMapWrapper.getAMap();
|
||||
}
|
||||
|
||||
public static NaviClient getInstance(Context context) {
|
||||
if (sInstance == null) {
|
||||
synchronized (NaviClient.class) {
|
||||
if (sInstance == null) {
|
||||
sInstance = new NaviClient(context);
|
||||
}
|
||||
}
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public synchronized void release() {
|
||||
sInstance = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void naviTo(MogoLatLng endPoint) {
|
||||
naviTo(endPoint, mMogoNaviConfig);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void naviTo(MogoLatLng endPoint, MogoNaviConfig config) {
|
||||
naviTo(endPoint, null, config);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void naviTo(MogoLatLng endPoint, List<MogoLatLng> wayPoints, MogoNaviConfig config) {
|
||||
if (!checkAMapNavi()) {
|
||||
return;
|
||||
}
|
||||
Logger.i(TAG, "开始规划路径");
|
||||
mMogoNaviConfig = config;
|
||||
if (mMogoNaviConfig == null) {
|
||||
mMogoNaviConfig = new MogoNaviConfig();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void startNavi(boolean isRealNavi) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setLineClickInteraction(OnCalculatePathItemClickInteraction lineClickInteraction) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public MogoLatLng getCarLocation() {
|
||||
if (mCarLocation != null) {
|
||||
synchronized (mCarLocation) {
|
||||
return new MogoLatLng(mCarLocation.getLatitude(), mCarLocation.getLongitude());
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Location getCarLocation2() {
|
||||
return mCarLocation;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void registerCarLocationChangedListener(IMogoCarLocationChangedListener2 listener) {
|
||||
// do not impl.
|
||||
}
|
||||
|
||||
// -- end
|
||||
|
||||
public void syncCarLocation(Location location) {
|
||||
mCarLocation = location;
|
||||
if (MogoCarLocationChangedListenerRegister.getInstance().getListener() != null) {
|
||||
MogoCarLocationChangedListenerRegister.getInstance().getListener().onCarLocationChanged2(location);
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkAMapNavi() {
|
||||
mAMapNavi = AMapWrapper.getAMap();
|
||||
if (mAMapNavi == null) {
|
||||
Logger.e(TAG, "自研导航实例为空!!!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startAimlessMode() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stopAimlessMode() {
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,156 +0,0 @@
|
||||
package com.mogo.map.impl.custom.utils;
|
||||
|
||||
import android.content.Context;
|
||||
import android.util.SparseArray;
|
||||
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-09-29
|
||||
* <p>
|
||||
* 描述
|
||||
*/
|
||||
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, "通过行人道路" );
|
||||
}
|
||||
|
||||
private static int lastIconType = 0;
|
||||
private static int lastIconResId = 0;
|
||||
|
||||
public static String getNameByIconType( int iconType ) {
|
||||
return sIconName.get( iconType );
|
||||
}
|
||||
|
||||
public static int getResIdByIconType( Context context, int iconType ) {
|
||||
try {
|
||||
if ( iconType == lastIconType ) {
|
||||
return lastIconResId;
|
||||
}
|
||||
int target = context.getResources().getIdentifier( "ic_" + iconType, "drawable", context.getPackageName() );
|
||||
lastIconType = iconType;
|
||||
lastIconResId = target;
|
||||
return target;
|
||||
} catch ( Exception e ) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,8 +4,6 @@ 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.geo.IMogoGeoSearch;
|
||||
import com.mogo.map.search.poisearch.IMogoPoiSearch;
|
||||
import com.mogo.map.search.poisearch.query.MogoPoiSearchQuery;
|
||||
@@ -27,17 +25,12 @@ interface IMogoMapApiBuilder extends IProvider {
|
||||
|
||||
IMogoMapUIController getMapUIController();
|
||||
|
||||
IMogoNavi getNavi( Context context );
|
||||
|
||||
IMogoPoiSearch getPoiSearchClient( Context context, MogoPoiSearchQuery query );
|
||||
|
||||
IMogoAimless getAimless( Context context );
|
||||
|
||||
void destroy();
|
||||
|
||||
IMogoMapView getMapView( Context context );
|
||||
|
||||
IMogoTrafficSearch getTrafficSearch();
|
||||
|
||||
int getResIdByIconType( Context context, int iconType );
|
||||
}
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
package com.mogo.map;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-18
|
||||
* <p>
|
||||
* 地图抽象
|
||||
*/
|
||||
public interface IMogoMapViewCreator {
|
||||
|
||||
IMogoMapView create( Context context);
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
/**
|
||||
* @author donghongyu
|
||||
* @since 2020-11-05
|
||||
* <p>
|
||||
* 巡航操作
|
||||
*/
|
||||
public interface IMogoAimless {
|
||||
|
||||
/**
|
||||
* 打开巡航模式
|
||||
*/
|
||||
void startAimlessMode();
|
||||
|
||||
/**
|
||||
* 关闭巡航模式
|
||||
*/
|
||||
void stopAimlessMode();
|
||||
|
||||
/**
|
||||
* 设置巡航模式状态
|
||||
*
|
||||
* @param open
|
||||
*/
|
||||
void setAimlessModeStatus(boolean open);
|
||||
|
||||
}
|
||||
@@ -1,73 +0,0 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
import android.location.Location;
|
||||
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-25
|
||||
* <p>
|
||||
* 导航操作
|
||||
*/
|
||||
public interface IMogoNavi extends IMogoCarLocationChangedListenerRegister, IMogoOperationListenerRegister{
|
||||
|
||||
/**
|
||||
* 开启路径规划并导航
|
||||
*
|
||||
* @param endPoint 目的地
|
||||
*/
|
||||
void naviTo( MogoLatLng endPoint );
|
||||
|
||||
/**
|
||||
* 开启路径规划并导航
|
||||
*
|
||||
* @param endPoint 目的地
|
||||
* @param config 规划路线策略
|
||||
*/
|
||||
void naviTo( MogoLatLng endPoint, MogoNaviConfig config );
|
||||
|
||||
/**
|
||||
* 开启路径规划并导航
|
||||
*
|
||||
* @param endPoint 导航目的地
|
||||
* @param wayPoints 途经点
|
||||
* @param config 规划路线策略
|
||||
*/
|
||||
void naviTo( MogoLatLng endPoint, List< MogoLatLng > wayPoints, MogoNaviConfig config );
|
||||
|
||||
|
||||
/**
|
||||
* 开始导航
|
||||
*
|
||||
* @param isRealNavi true - 实时导航 false - 模拟导航
|
||||
*/
|
||||
void startNavi( boolean isRealNavi );
|
||||
|
||||
/**
|
||||
* 获取车标经纬度
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
MogoLatLng getCarLocation();
|
||||
|
||||
/**
|
||||
* 获取车标经纬度
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Location getCarLocation2();
|
||||
|
||||
/**
|
||||
* 打开巡航模式
|
||||
*/
|
||||
void startAimlessMode();
|
||||
|
||||
/**
|
||||
* 关闭巡航模式
|
||||
*/
|
||||
void stopAimlessMode();
|
||||
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/10/23
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
interface IMogoOperationListenerRegister {
|
||||
|
||||
/**
|
||||
* 设置线条点击回调
|
||||
*/
|
||||
void setLineClickInteraction( OnCalculatePathItemClickInteraction itemClickInteraction );
|
||||
|
||||
}
|
||||
@@ -1,148 +0,0 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import com.mogo.eagle.core.data.map.MogoLatLng;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020-01-08
|
||||
* <p>
|
||||
* 规划路线信息
|
||||
*/
|
||||
public class MogoCalculatePath {
|
||||
|
||||
/**
|
||||
* 策略名称
|
||||
*/
|
||||
private String mStrategyName;
|
||||
|
||||
/**
|
||||
* 时间
|
||||
*/
|
||||
private String mFormattedTime;
|
||||
private int mTime;
|
||||
|
||||
/**
|
||||
* 距离
|
||||
*/
|
||||
private String mFormattedDistance;
|
||||
private int mDistance;
|
||||
|
||||
/**
|
||||
* 红绿灯个数
|
||||
*/
|
||||
private int mTrafficLights;
|
||||
|
||||
/**
|
||||
* 路线ID,用于选择那一条线
|
||||
*/
|
||||
private String mTagId;
|
||||
|
||||
/**
|
||||
* 规划的线路ID
|
||||
*/
|
||||
private int mPathId;
|
||||
|
||||
|
||||
private List<MogoLatLng> coordList;
|
||||
|
||||
public List<MogoLatLng> getCoordList() {
|
||||
return coordList;
|
||||
}
|
||||
|
||||
public void setCoordList(List<MogoLatLng> coordList) {
|
||||
this.coordList = coordList;
|
||||
}
|
||||
|
||||
public MogoCalculatePath() {
|
||||
}
|
||||
|
||||
public String getStrategyName() {
|
||||
if (!TextUtils.isEmpty(mStrategyName)&&mStrategyName.contains(",")) {
|
||||
String[] split = mStrategyName.split(",");
|
||||
return split[0];
|
||||
}
|
||||
|
||||
return mStrategyName;
|
||||
}
|
||||
|
||||
public void setStrategyName( String mStrategyName ) {
|
||||
this.mStrategyName = mStrategyName;
|
||||
}
|
||||
|
||||
public String getFormattedTime() {
|
||||
return mFormattedTime;
|
||||
}
|
||||
|
||||
public void setFormattedTime( String mTime ) {
|
||||
this.mFormattedTime = mTime;
|
||||
}
|
||||
|
||||
public String getFormattedDistance() {
|
||||
return mFormattedDistance;
|
||||
}
|
||||
|
||||
public void setFormattedDistance( String mDistance ) {
|
||||
this.mFormattedDistance = mDistance;
|
||||
}
|
||||
|
||||
public int getTrafficLights() {
|
||||
return mTrafficLights;
|
||||
}
|
||||
|
||||
public void setTrafficLights( int mTrafficLights ) {
|
||||
this.mTrafficLights = mTrafficLights;
|
||||
}
|
||||
|
||||
|
||||
private StringBuilder mDescBuilder = null;
|
||||
|
||||
public String getDesc() {
|
||||
if ( mDescBuilder == null ) {
|
||||
mDescBuilder = new StringBuilder();
|
||||
int lightsSize = getTrafficLights();
|
||||
if ( lightsSize > 0 ) {
|
||||
mDescBuilder.append( "红绿灯" ).append( lightsSize ).append( "个" );
|
||||
}
|
||||
//mDescBuilder.append( " " );
|
||||
//mDescBuilder.append( "收费" ).append( mPath.getTollCost() ).append( "元" );
|
||||
}
|
||||
|
||||
return mDescBuilder.toString();
|
||||
}
|
||||
|
||||
public String getTagId() {
|
||||
return mTagId;
|
||||
}
|
||||
|
||||
public void setTagId( String mTagId ) {
|
||||
this.mTagId = mTagId;
|
||||
}
|
||||
|
||||
public int getPathId() {
|
||||
return mPathId;
|
||||
}
|
||||
|
||||
public void setPathId( int mPathId ) {
|
||||
this.mPathId = mPathId;
|
||||
}
|
||||
|
||||
public int getTime() {
|
||||
return mTime;
|
||||
}
|
||||
|
||||
public MogoCalculatePath setTime( int time ) {
|
||||
this.mTime = time;
|
||||
return this;
|
||||
}
|
||||
|
||||
public int getDistance() {
|
||||
return mDistance;
|
||||
}
|
||||
|
||||
public MogoCalculatePath setDistance( int distance ) {
|
||||
this.mDistance = distance;
|
||||
return this;
|
||||
}
|
||||
}
|
||||
@@ -1,105 +0,0 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2019-12-25
|
||||
* <p>
|
||||
* 导航参数
|
||||
*/
|
||||
public class MogoNaviConfig {
|
||||
|
||||
/**
|
||||
* 是否躲避拥堵
|
||||
*/
|
||||
private boolean congestion = false;
|
||||
|
||||
/**
|
||||
* 不走高速
|
||||
*/
|
||||
private boolean avoidSpeed = false;
|
||||
|
||||
/**
|
||||
* 避免收费
|
||||
*/
|
||||
private boolean cost = false;
|
||||
|
||||
/**
|
||||
* 高速优先
|
||||
*/
|
||||
private boolean highSpeed = false;
|
||||
|
||||
/**
|
||||
* 是否多路线算路
|
||||
*/
|
||||
private boolean multipleRoute = true;
|
||||
|
||||
/**
|
||||
* 是否躲避拥堵
|
||||
*/
|
||||
public MogoNaviConfig congestion( boolean congestion ) {
|
||||
this.congestion = congestion;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 不走高速
|
||||
*/
|
||||
public MogoNaviConfig avoidSpeed( boolean avoidSpeed ) {
|
||||
this.avoidSpeed = avoidSpeed;
|
||||
if (avoidSpeed) {
|
||||
this.highSpeed = false;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 避免收费
|
||||
*/
|
||||
public MogoNaviConfig cost( boolean cost ) {
|
||||
this.cost = cost;
|
||||
if (cost) {
|
||||
this.highSpeed = false;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 高速优先
|
||||
*/
|
||||
public MogoNaviConfig highSpeed( boolean highSpeed ) {
|
||||
this.highSpeed = highSpeed;
|
||||
if (highSpeed) {
|
||||
this.avoidSpeed = false;
|
||||
this.cost = false;
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否多路线算路
|
||||
*/
|
||||
public MogoNaviConfig multipleRoute( boolean multipleRoute ) {
|
||||
this.multipleRoute = multipleRoute;
|
||||
return this;
|
||||
}
|
||||
|
||||
public boolean isCongestion() {
|
||||
return congestion;
|
||||
}
|
||||
|
||||
public boolean isAvoidSpeed() {
|
||||
return avoidSpeed;
|
||||
}
|
||||
|
||||
public boolean isCost() {
|
||||
return cost;
|
||||
}
|
||||
|
||||
public boolean isHighSpeed() {
|
||||
return highSpeed;
|
||||
}
|
||||
|
||||
public boolean isMultipleRoute() {
|
||||
return multipleRoute;
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
public
|
||||
/**
|
||||
* @author congtaowang
|
||||
* @since 2020/10/23
|
||||
*
|
||||
* 描述
|
||||
*/
|
||||
class MogoOperationListenerRegister implements IMogoOperationListenerRegister {
|
||||
|
||||
private static volatile MogoOperationListenerRegister sInstance;
|
||||
private OnCalculatePathItemClickInteraction itemClickInteraction;
|
||||
|
||||
private MogoOperationListenerRegister(){}
|
||||
|
||||
public static MogoOperationListenerRegister getInstance(){
|
||||
if( sInstance == null ){
|
||||
synchronized( MogoOperationListenerRegister.class ) {
|
||||
if( sInstance == null ){
|
||||
sInstance = new MogoOperationListenerRegister();
|
||||
}
|
||||
}
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
public synchronized void release(){
|
||||
sInstance = null;
|
||||
}
|
||||
|
||||
private Object readResolve() {
|
||||
// 阻止反序列化,必须实现 Serializable 接口
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置线条点击回调
|
||||
*/
|
||||
public void setLineClickInteraction( OnCalculatePathItemClickInteraction itemClickInteraction ) {
|
||||
this.itemClickInteraction = itemClickInteraction;
|
||||
}
|
||||
|
||||
public OnCalculatePathItemClickInteraction getItemClickInteraction() {
|
||||
return itemClickInteraction;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
package com.mogo.map.navi;
|
||||
|
||||
/**
|
||||
* 规划路线交互接口
|
||||
*/
|
||||
public interface OnCalculatePathItemClickInteraction {
|
||||
|
||||
/**
|
||||
* 点击:列表点击、线路点击
|
||||
*
|
||||
* @param tagId 线条ID
|
||||
*/
|
||||
void onItemClicked( String tagId );
|
||||
}
|
||||
@@ -2,11 +2,6 @@ package com.mogo.module.extensions.live;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.module.common.MogoApisHandler;
|
||||
import com.mogo.service.IMogoServiceApis;
|
||||
import com.mogo.service.map.IMogoMapService;
|
||||
|
||||
|
||||
public class ExtensionServiceManager {
|
||||
private static boolean isInit;
|
||||
|
||||
@@ -6,8 +6,6 @@ import com.alibaba.android.arouter.facade.template.IProvider;
|
||||
import com.mogo.map.listener.IMogoHosListenerRegister;
|
||||
import com.mogo.map.location.IMogoLocationClient;
|
||||
import com.mogo.map.marker.IMogoMarkerManager;
|
||||
import com.mogo.map.navi.IMogoAimless;
|
||||
import com.mogo.map.navi.IMogoNavi;
|
||||
import com.mogo.map.overlay.IMogoOverlayManager;
|
||||
import com.mogo.map.search.geo.IMogoGeoSearch;
|
||||
import com.mogo.map.search.poisearch.IMogoPoiSearch;
|
||||
|
||||
Reference in New Issue
Block a user