This commit is contained in:
unknown
2020-06-05 12:58:37 +08:00
14 changed files with 312 additions and 72 deletions

View File

@@ -53,28 +53,38 @@ android {
targetCompatibility 1.8
}
sourceSets {
main {
manifest.srcFile 'src/independent/AndroidManifest.xml'
}
launcher {
manifest.srcFile 'src/launcher/AndroidManifest.xml'
}
independent {
manifest.srcFile 'src/independent/AndroidManifest.xml'
}
}
flavorDimensions "product", "basic", "env"
productFlavors {
//独立app
independent{
dimension "basic"
sourceSets {
main {
manifest.srcFile 'src/independent/AndroidManifest.xml'
}
}
applicationId rootProject.ext.android.applicationId
// 是否启动位置服务
buildConfigField 'boolean', 'LAUNCH_LOCATION_SERVICE', 'false'
// 是否使用自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
}
// launcher app
launcher{
dimension "basic"
sourceSets {
main {
manifest.srcFile 'src/launcher/AndroidManifest.xml'
}
}
applicationId rootProject.ext.android.zhidadoApplicationId
// 是否启动位置服务
buildConfigField 'boolean', 'LAUNCH_LOCATION_SERVICE', 'true'
// 是否使用自定义导航
buildConfigField 'boolean', 'USE_CUSTOM_NAVI', 'false'
}
// f系列-分体机全系列,未细分
f8xx{

View File

@@ -10,6 +10,7 @@ import com.auto.zhidao.logsdk.CrashSystem;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.module.adcard.AdCardConstants;
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant;
import com.mogo.module.back.BackToLauncherConst;
import com.mogo.module.carchatting.card.CallChatConstant;
import com.mogo.module.common.MogoModule;
@@ -24,9 +25,6 @@ import com.mogo.service.connection.IMogoSocketManager;
import com.mogo.utils.logger.LogLevel;
import com.mogo.utils.logger.Logger;
import static com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.PATH_AGREEMENT_FRAGMENT;
import static com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME;
/**
* @author congtaowang
* @since 2019-12-18
@@ -35,6 +33,8 @@ import static com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.PA
*/
public class MogoApplication extends AbsMogoApplication {
private static final String TAG = "MogoApplication";
@Override
public void onCreate() {
DebugConfig.setNetMode(BuildConfig.NET_ENV);
@@ -49,7 +49,7 @@ public class MogoApplication extends AbsMogoApplication {
Logger.init(BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF);
// MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(PATH_AGREEMENT_FRAGMENT, PATH_AGREEMENT_MODULE_NAME));
MogoModulePaths.addModule(new MogoModule( AuthorizeConstant.PATH_AGREEMENT_FRAGMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME));
//运营位卡片,需要默认显示,放在第一个加载
MogoModulePaths.addModule(new MogoModule(AdCardConstants.TAG, AdCardConstants.MODULE_NAME));
@@ -58,17 +58,24 @@ public class MogoApplication extends AbsMogoApplication {
MogoModulePaths.addModule(new MogoModule(TanluConstants.TAG, TanluConstants.MODEL_NAME));
MogoModulePaths.addModule(new MogoModule(OnLineCarConstants.TAG, OnLineCarConstants.MODULE_NAME));
MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
// MogoModulePaths.addModule(new MogoModule(V2XConst.PATH_V2X_UI, V2XConst.PATH_V2X_UI));
MogoModulePaths.addModule(new MogoModule(PushUIConstants.TAG, PushUIConstants.TAG));
MogoModulePaths.addModule(new MogoModule(BackToLauncherConst.MODULE_PATH, BackToLauncherConst.MODULE_NAME));
Log.i("timer", "cost " + (System.currentTimeMillis() - start) + "ms");
DebugConfig.setLaunchLocationService( BuildConfig.LAUNCH_LOCATION_SERVICE );
DebugConfig.setLaunchLocationService( BuildConfig.USE_CUSTOM_NAVI );
}
@Override
protected void init() {
super.init();
IMogoSocketManager mMogoSocketManager = (IMogoSocketManager) ARouter.getInstance().build(MogoServicePaths.PATH_SOCKET_MANAGER).navigation();
mMogoSocketManager.init(getApplicationContext(), BuildConfig.APPLICATION_ID);
IMogoSocketManager mMogoSocketManager = ARouter.getInstance().navigation( IMogoSocketManager.class );
if ( mMogoSocketManager != null ) {
mMogoSocketManager.init(getApplicationContext(), BuildConfig.APPLICATION_ID);
} else {
Logger.e( TAG, "init socket server error." );
}
}
@Override

View File

@@ -75,7 +75,7 @@ public class DebugConfig {
}
/**
* 是否拉起位置服务
* 是否拉起位置服务launcher 需要拉起位置服务,独立 app 不需要
*/
private static boolean sLaunchLocationService = true;
@@ -86,4 +86,17 @@ public class DebugConfig {
public static void setLaunchLocationService( boolean launchLocationService ) {
DebugConfig.sLaunchLocationService = launchLocationService;
}
/**
* 是否使用自定义导航
*/
private static boolean sUseCustomNavi = false;
public static boolean isUseCustomNavi() {
return sUseCustomNavi;
}
public static void setUseCustomNavi( boolean sUseCustomNavi ) {
DebugConfig.sUseCustomNavi = sUseCustomNavi;
}
}

View File

@@ -80,6 +80,6 @@ MOGO_MODULE_AD_CARD_VERSION=1.0.1
## 产品库必备配置
applicationId=com.mogo.launcer
applicationName=Launcer2.0
applicationName=IntelligentPilot
versionCode=80006
versionName=8.0.6

View File

@@ -2,6 +2,7 @@ package com.zhidao.mogo.module.main.independent;
import android.os.Bundle;
import android.view.View;
import android.widget.FrameLayout;
import androidx.annotation.Nullable;
@@ -16,8 +17,19 @@ public class MainIndependentActivity extends MainActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
// mApps.setVisibility(View.GONE);
// mLeftShadowFrame.setVisibility(View.GONE);
@Override
protected void initViews() {
super.initViews();
FrameLayout.LayoutParams entranceParams = ( ( FrameLayout.LayoutParams ) mEntrance.getLayoutParams() );
entranceParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_entrance_fragment_container_marginLeft );
mEntrance.setLayoutParams( entranceParams );
FrameLayout.LayoutParams headerParams = ( ( FrameLayout.LayoutParams ) mHeader.getLayoutParams() );
headerParams.leftMargin = getResources().getDimensionPixelSize( R.dimen.module_main_header_fragment_container_marginLeft );
mHeader.setLayoutParams( headerParams );
mApps.setVisibility( View.GONE );
}
}

View File

@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="module_main_entrance_fragment_container_marginLeft">350px</dimen>
<dimen name="module_main_header_fragment_container_marginLeft">366px</dimen>
</resources>

View File

@@ -32,7 +32,6 @@ public class MainLauncherActivity extends MainActivity {
@Override
protected void initViews() {
super.initViews();
mApps.setVisibility( View.GONE );
}
@Override

View File

@@ -8,7 +8,6 @@
<intent-filter>
<!-- 一个新应用包已经安装在设备上,数据包括包名(最新安装的包程序不能接收到这个广播)-->
<action android:name="android.intent.action.PACKAGE_ADDED" />
<action android:name="android.intent.action.PACKAGE_INSTALL" />
<!-- 一个新版本的应用安装到设备,替换之前已经存在的版本-->
<action android:name="android.intent.action.PACKAGE_REPLACED" />
<!-- 一个已存在的应用程序包已经从设备上移除,包括包名(正在被安装的包程序不能接收到这个广播)-->

View File

@@ -0,0 +1,48 @@
package com.mogo.module.common.map;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.utils.AppUtils;
import com.mogo.utils.logger.Logger;
public
/**
* @author congtaowang
* @since 2020/6/5
* <p>
* 自定义导航功能拦截器
*/
class CustomNaviInterrupter implements Interrupter {
private static final String TAG = "CustomNaviInterrupter";
private static volatile CustomNaviInterrupter sInstance;
private CustomNaviInterrupter() {
}
public static CustomNaviInterrupter getInstance() {
if ( sInstance == null ) {
synchronized ( CustomNaviInterrupter.class ) {
if ( sInstance == null ) {
sInstance = new CustomNaviInterrupter();
}
}
}
return sInstance;
}
public synchronized void release() {
sInstance = null;
}
@Override
public boolean interrupt() {
if ( AppUtils.isAppInstalled( AbsMogoApplication.getApp(), "com.autonavi.amapauto" )
|| DebugConfig.isUseCustomNavi() ) {
Logger.d( TAG, "do not use custom map function." );
return true;
}
return false;
}
}

View File

@@ -188,7 +188,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
return R.layout.module_ext_layout_entrance;
}
private List<View> demoCache = new ArrayList<>();
private List< View > demoCache = new ArrayList<>();
@Override
protected void initViews() {
@@ -279,9 +279,9 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
} );
// mNaviInfo = findViewById( R.id.module_entrance_id_navi_info_panel );
ConstraintLayout rootView = findViewById(R.id.module_entrance_id_top_motion_layout);
if(rootView!=null) {
TopViewAnimHelper.getInstance().init(rootView);
ConstraintLayout rootView = findViewById( R.id.module_entrance_id_top_motion_layout );
if ( rootView != null ) {
TopViewAnimHelper.getInstance().init( rootView );
}
mExitNavi = findViewById( R.id.module_entrance_id_exit_navi );
@@ -419,6 +419,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
return;
}
if ( mExitNavi.getVisibility() == View.GONE ) {
// 避免先导航后启动app导致无法显示控件
onStartNavi();
}
mNaviInfo.notifyChanged( naviinfo );
@@ -550,7 +551,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
}
@Override
public void refreshUserInfo(UserInfo userInfo) {
Logger.d(TAG, "刷新用户信息: " + userInfo);
public void refreshUserInfo( UserInfo userInfo ) {
Logger.d( TAG, "刷新用户信息: " + userInfo );
}
}

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -60,4 +60,4 @@
android:background="@drawable/module_main_launcher_bg"
android:visibility="visible"
tools:visibility="gone" />
</RelativeLayout>
</FrameLayout>

View File

@@ -6,6 +6,7 @@ import android.util.Log;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.module.common.map.CustomNaviInterrupter;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.statusmanager.IMogoStatusChangedListener;
@@ -46,14 +47,17 @@ public class MapBroadCastHelper implements IMogoStatusChangedListener {
}
public void notifyXiaozhi( MogoNaviInfo naviinfo ) {
// Intent intent = new Intent( ACTION_NAV_SEND );
// intent.putExtra( "KEY_TYPE", 10001 );
// intent.putExtra( "NEXT_ROAD_NAME", naviinfo.getNextRoadName() );
// intent.putExtra( "ROUTE_REMAIN_TIME_AUTO", naviinfo.getVoiceRetainTime() );
// intent.putExtra( "ROUTE_REMAIN_DIS_AUTO", naviinfo.getVoiceRetainDistance() );
// intent.putExtra( "ICON", naviinfo.getIconResId() );
// mContext.sendBroadcast( intent );
// Log.v( "MapBroadCastHelper", "action=" + ACTION_NAV_SEND + " NaviInfo" );
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
return;
}
Intent intent = new Intent( ACTION_NAV_SEND );
intent.putExtra( "KEY_TYPE", 10001 );
intent.putExtra( "NEXT_ROAD_NAME", naviinfo.getNextRoadName() );
intent.putExtra( "ROUTE_REMAIN_TIME_AUTO", naviinfo.getVoiceRetainTime() );
intent.putExtra( "ROUTE_REMAIN_DIS_AUTO", naviinfo.getVoiceRetainDistance() );
intent.putExtra( "ICON", naviinfo.getIconResId() );
mContext.sendBroadcast( intent );
Log.v( "MapBroadCastHelper", "action=" + ACTION_NAV_SEND + " NaviInfo" );
}
@@ -67,30 +71,30 @@ public class MapBroadCastHelper implements IMogoStatusChangedListener {
}
public void mapFrount() {
// notifyXizhiNavStatus( STATUS_NAV_FRONT );
notifyXizhiNavStatus( STATUS_NAV_FRONT );
}
public void mapBackground() {
// notifyXizhiNavStatus( STATUS_NAV_BACKGROUND );
notifyXizhiNavStatus( STATUS_NAV_BACKGROUND );
}
public void startNavi() {
// notifyXizhiNavStatus( STATUS_NAV_START );
notifyXizhiNavStatus( STATUS_NAV_START );
}
public void stopNavi() {
// notifyXizhiNavStatus( STATUS_NAV_STOP );
notifyXizhiNavStatus( STATUS_NAV_STOP );
}
@Override
public void onStatusChanged( StatusDescriptor descriptor, boolean isTrue ) {
if ( descriptor == StatusDescriptor.AI_ASSIST_READY ) {
if ( isTrue ) {
// if ( AppUtils.isApplicationBroughtToBackground( mContext ) ) {
// mapBackground();
// } else {
// mapFrount();
// }
if ( AppUtils.isApplicationBroughtToBackground( mContext ) ) {
mapBackground();
} else {
mapFrount();
}
}
}
}

View File

@@ -23,6 +23,7 @@ import com.mogo.map.navi.MogoNaviConfig;
import com.mogo.map.navi.MogoNaviInfo;
import com.mogo.map.uicontroller.EnumMapUI;
import com.mogo.map.uicontroller.MapControlResult;
import com.mogo.module.common.map.CustomNaviInterrupter;
import com.mogo.service.IMogoServiceApis;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.intent.IMogoIntentListener;
@@ -116,10 +117,13 @@ public class MapPresenter extends Presenter< MapView > implements
onChangeDayNightMode( day_night_mode );
//继续导航
} else if ( key_type == 10049 ) {
// boolean extra_endurance_data = intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
// if ( extra_endurance_data ) {
// onContinueNavigation();
// }
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
return;
}
boolean extra_endurance_data = intent.getBooleanExtra( "EXTRA_ENDURANCE_DATA", false );
if ( extra_endurance_data ) {
onContinueNavigation();
}
} else if ( key_type == 10006 ) {
// 避免冲突,会同时发送两个广播,这里不操作。
//int extra_is_show = intent.getIntExtra( "EXTRA_IS_SHOW", 0 );
@@ -131,12 +135,21 @@ public class MapPresenter extends Presenter< MapView > implements
} else if ( key_type == 10005 ) {
int navi_route_prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", type );
} else if ( key_type == 20009 ) {
// onOpenNavi();
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
return;
}
onOpenNavi();
} else if ( key_type == 10038 || key_type == 10007 ) {
// mLauncher.backToLauncher( getContext() );
// onChoosePath( intent, key_type );
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
return;
}
mLauncher.backToLauncher( getContext() );
onChoosePath( intent, key_type );
} else if ( key_type == 10021 ) {
// onStopNaviInternal();
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
return;
}
onStopNaviInternal();
} else if ( key_type == 10005 ) {
// 仅在导航场景下,⽀持第三⽅进⾏路线偏好的重新选择。
// 避免收费 | 1
@@ -149,12 +162,15 @@ public class MapPresenter extends Presenter< MapView > implements
// 不走高速躲避收费和拥堵 | 8
// 高速优先 | 20
// 躲避拥堵且高速优先 | 24
// int prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", 0 );
// MogoNaviConfig config = new MogoNaviConfig().congestion( prefer == 4 )
// .cost( prefer == 1 || prefer == 7 )
// .highSpeed( prefer == 20 )
// .avoidSpeed( prefer == 3 );
// mMogoMapService.getNavi( getContext() ).reCalculateRoute( config );
if ( CustomNaviInterrupter.getInstance().interrupt() ) {
return;
}
int prefer = intent.getIntExtra( "NAVI_ROUTE_PREFER", 0 );
MogoNaviConfig config = new MogoNaviConfig().congestion( prefer == 4 )
.cost( prefer == 1 || prefer == 7 )
.highSpeed( prefer == 20 )
.avoidSpeed( prefer == 3 );
mMogoMapService.getNavi( getContext() ).reCalculateRoute( config );
}
}
@@ -279,16 +295,18 @@ public class MapPresenter extends Presenter< MapView > implements
private void zoomMap( boolean zoomIn ) {
boolean isLocked = mMogoMapService.getMapUIController().isCarLocked();
MapControlResult result = mView.getUIController().changeZoom( zoomIn );
// if ( result == MapControlResult.TARGET ) {
// UiThreadHandler.postDelayed( () -> {
// if ( zoomIn ) {
// AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最大", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
// } else {
// AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最小", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
// }
// }, 1_000L ); // 避免小智障播放完毕之前播报
// return;
// }
if (! CustomNaviInterrupter.getInstance().interrupt() ) {
if ( result == MapControlResult.TARGET ) {
UiThreadHandler.postDelayed( () -> {
if ( zoomIn ) {
AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最大", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
} else {
AIAssist.getInstance( getContext() ).speakTTSVoice( "地图已是最小", VoicePreemptType.PREEMPT_TYPE_NEXT, null );
}
}, 1_000L ); // 避免小智障播放完毕之前播报
return;
}
}
if ( isLocked ) {
// 保持锁车状态
UiThreadHandler.postDelayed( () -> {

View File

@@ -2,14 +2,19 @@ package com.mogo.module.service.intent;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.net.Uri;
import android.text.TextUtils;
import android.view.View;
import android.widget.TextView;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.map.MogoLatLng;
import com.mogo.map.marker.IMogoMarker;
import com.mogo.map.marker.MogoMarkerOptions;
import com.mogo.map.search.geo.IMogoGeoSearch;
import com.mogo.map.search.geo.IMogoGeoSearchListener;
import com.mogo.map.search.geo.MogoGeocodeResult;
@@ -24,6 +29,9 @@ import com.mogo.utils.TipToast;
import com.mogo.utils.logger.Logger;
import com.mogo.utils.network.utils.GsonUtil;
import java.util.ArrayList;
import java.util.List;
/**
* @author congtaowang
* @since 2020-04-17
@@ -148,6 +156,122 @@ public class MockIntentHandler implements IntentHandler {
double lon = intent.getFloatExtra( "lon", 0.0f );
MarkerServiceHandler.getNavi().naviTo( new MogoLatLng( lat, lon ) );
}
case 14: {
List< MogoLatLng > mogoLatLngs = new ArrayList<>();
mogoLatLngs.add( new MogoLatLng( 39.615986, 116.396716 ) );
mogoLatLngs.add( new MogoLatLng( 39.616007, 116.396995 ) );
mogoLatLngs.add( new MogoLatLng( 39.616012, 116.397169 ) );
mogoLatLngs.add( new MogoLatLng( 39.616017, 116.397343 ) );
mogoLatLngs.add( new MogoLatLng( 39.616022, 116.397517 ) );
mogoLatLngs.add( new MogoLatLng( 39.616029, 116.397693 ) );
mogoLatLngs.add( new MogoLatLng( 39.616039, 116.397896 ) );
mogoLatLngs.add( new MogoLatLng( 39.616051, 116.3981 ) );
mogoLatLngs.add( new MogoLatLng( 39.616058, 116.39827 ) );
mogoLatLngs.add( new MogoLatLng( 39.616066, 116.398441 ) );
mogoLatLngs.add( new MogoLatLng( 39.616074, 116.398612 ) );
mogoLatLngs.add( new MogoLatLng( 39.616083, 116.398787 ) );
mogoLatLngs.add( new MogoLatLng( 39.616093, 116.39899 ) );
mogoLatLngs.add( new MogoLatLng( 39.616105, 116.399195 ) );
mogoLatLngs.add( new MogoLatLng( 39.616112, 116.399334 ) );
mogoLatLngs.add( new MogoLatLng( 39.61612, 116.399473 ) );
mogoLatLngs.add( new MogoLatLng( 39.616128, 116.399612 ) );
mogoLatLngs.add( new MogoLatLng( 39.616136, 116.399751 ) );
mogoLatLngs.add( new MogoLatLng( 39.616148, 116.399893 ) );
mogoLatLngs.add( new MogoLatLng( 39.616153, 116.40008 ) );
mogoLatLngs.add( new MogoLatLng( 39.616159, 116.400301 ) );
mogoLatLngs.add( new MogoLatLng( 39.616167, 116.400471 ) );
mogoLatLngs.add( new MogoLatLng( 39.616175, 116.400642 ) );
mogoLatLngs.add( new MogoLatLng( 39.616183, 116.400813 ) );
mogoLatLngs.add( new MogoLatLng( 39.616192, 116.400988 ) );
mogoLatLngs.add( new MogoLatLng( 39.616201, 116.401191 ) );
mogoLatLngs.add( new MogoLatLng( 39.616213, 116.401396 ) );
mogoLatLngs.add( new MogoLatLng( 39.616235, 116.401728 ) );
mogoLatLngs.add( new MogoLatLng( 39.616246, 116.401986 ) );
mogoLatLngs.add( new MogoLatLng( 39.61625, 116.402146 ) );
mogoLatLngs.add( new MogoLatLng( 39.616255, 116.402307 ) );
mogoLatLngs.add( new MogoLatLng( 39.61626, 116.402468 ) );
mogoLatLngs.add( new MogoLatLng( 39.616267, 116.40263 ) );
mogoLatLngs.add( new MogoLatLng( 39.616272, 116.402762 ) );
mogoLatLngs.add( new MogoLatLng( 39.616277, 116.402894 ) );
mogoLatLngs.add( new MogoLatLng( 39.616282, 116.403026 ) );
mogoLatLngs.add( new MogoLatLng( 39.616287, 116.403158 ) );
mogoLatLngs.add( new MogoLatLng( 39.616292, 116.40329 ) );
mogoLatLngs.add( new MogoLatLng( 39.616297, 116.403422 ) );
mogoLatLngs.add( new MogoLatLng( 39.616302, 116.403554 ) );
mogoLatLngs.add( new MogoLatLng( 39.616307, 116.403686 ) );
mogoLatLngs.add( new MogoLatLng( 39.616321, 116.403821 ) );
mogoLatLngs.add( new MogoLatLng( 39.616331, 116.404045 ) );
mogoLatLngs.add( new MogoLatLng( 39.616343, 116.404272 ) );
mogoLatLngs.add( new MogoLatLng( 39.616353, 116.404551 ) );
mogoLatLngs.add( new MogoLatLng( 39.616363, 116.404753 ) );
mogoLatLngs.add( new MogoLatLng( 39.616375, 116.404958 ) );
mogoLatLngs.add( new MogoLatLng( 39.616375, 116.405055 ) );
mogoLatLngs.add( new MogoLatLng( 39.616379, 116.405184 ) );
mogoLatLngs.add( new MogoLatLng( 39.616384, 116.405313 ) );
mogoLatLngs.add( new MogoLatLng( 39.616389, 116.405442 ) );
mogoLatLngs.add( new MogoLatLng( 39.616394, 116.405571 ) );
mogoLatLngs.add( new MogoLatLng( 39.616399, 116.4057 ) );
mogoLatLngs.add( new MogoLatLng( 39.616404, 116.405829 ) );
mogoLatLngs.add( new MogoLatLng( 39.616409, 116.405958 ) );
mogoLatLngs.add( new MogoLatLng( 39.616414, 116.406087 ) );
mogoLatLngs.add( new MogoLatLng( 39.616419, 116.406216 ) );
mogoLatLngs.add( new MogoLatLng( 39.616424, 116.406345 ) );
mogoLatLngs.add( new MogoLatLng( 39.616429, 116.406474 ) );
mogoLatLngs.add( new MogoLatLng( 39.61644, 116.406611 ) );
mogoLatLngs.add( new MogoLatLng( 39.616461, 116.406879 ) );
mogoLatLngs.add( new MogoLatLng( 39.616465, 116.407033 ) );
mogoLatLngs.add( new MogoLatLng( 39.616469, 116.407187 ) );
mogoLatLngs.add( new MogoLatLng( 39.616473, 116.407341 ) );
mogoLatLngs.add( new MogoLatLng( 39.616477, 116.407495 ) );
mogoLatLngs.add( new MogoLatLng( 39.616483, 116.407694 ) );
mogoLatLngs.add( new MogoLatLng( 39.616493, 116.407876 ) );
mogoLatLngs.add( new MogoLatLng( 39.616504, 116.408059 ) );
mogoLatLngs.add( new MogoLatLng( 39.616515, 116.408327 ) );
mogoLatLngs.add( new MogoLatLng( 39.616526, 116.408596 ) );
mogoLatLngs.add( new MogoLatLng( 39.616536, 116.408757 ) );
mogoLatLngs.add( new MogoLatLng( 39.616547, 116.409025 ) );
mogoLatLngs.add( new MogoLatLng( 39.616556, 116.409227 ) );
mogoLatLngs.add( new MogoLatLng( 39.616568, 116.409432 ) );
mogoLatLngs.add( new MogoLatLng( 39.616579, 116.409711 ) );
mogoLatLngs.add( new MogoLatLng( 39.61659, 116.409914 ) );
mogoLatLngs.add( new MogoLatLng( 39.616601, 116.410119 ) );
mogoLatLngs.add( new MogoLatLng( 39.616601, 116.410387 ) );
mogoLatLngs.add( new MogoLatLng( 39.616601, 116.410602 ) );
mogoLatLngs.add( new MogoLatLng( 39.616622, 116.410816 ) );
mogoLatLngs.add( new MogoLatLng( 39.616633, 116.411084 ) );
mogoLatLngs.add( new MogoLatLng( 39.616643, 116.411395 ) );
mogoLatLngs.add( new MogoLatLng( 39.616654, 116.411492 ) );
mogoLatLngs.add( new MogoLatLng( 39.616665, 116.411771 ) );
mogoLatLngs.add( new MogoLatLng( 39.616674, 116.411974 ) );
mogoLatLngs.add( new MogoLatLng( 39.616686, 116.412178 ) );
mogoLatLngs.add( new MogoLatLng( 39.616697, 116.412447 ) );
mogoLatLngs.add( new MogoLatLng( 39.616697, 116.412586 ) );
mogoLatLngs.add( new MogoLatLng( 39.616718, 116.412876 ) );
mogoLatLngs.add( new MogoLatLng( 39.616729, 116.413144 ) );
mogoLatLngs.add( new MogoLatLng( 39.616738, 116.413347 ) );
mogoLatLngs.add( new MogoLatLng( 39.61675, 116.413551 ) );
mogoLatLngs.add( new MogoLatLng( 39.61675, 116.41383 ) );
mogoLatLngs.add( new MogoLatLng( 39.616761, 116.414002 ) );
mogoLatLngs.add( new MogoLatLng( 39.616761, 116.414098 ) );
mogoLatLngs.add( new MogoLatLng( 39.616767, 116.414279 ) );
mogoLatLngs.add( new MogoLatLng( 39.616774, 116.414461 ) );
mogoLatLngs.add( new MogoLatLng( 39.616782, 116.414645 ) );
mogoLatLngs.add( new MogoLatLng( 39.616792, 116.41483 ) );
mogoLatLngs.add( new MogoLatLng( 39.616802, 116.415016 ) );
mogoLatLngs.add( new MogoLatLng( 39.616814, 116.415203 ) );
mogoLatLngs.add( new MogoLatLng( 39.616824, 116.415395 ) );
mogoLatLngs.add( new MogoLatLng( 39.616836, 116.415589 ) );
mogoLatLngs.add( new MogoLatLng( 39.616842, 116.415745 ) );
mogoLatLngs.add( new MogoLatLng( 39.616849, 116.415902 ) );
mogoLatLngs.add( new MogoLatLng( 39.616857, 116.416061 ) );
mogoLatLngs.add( new MogoLatLng( 39.616868, 116.416307 ) );
MogoMarkerOptions options = new MogoMarkerOptions();
options.icon( BitmapFactory.decodeResource( AbsMogoApplication.getApp().getResources(), R.drawable.icon_map_marker_car_gray ) )
.position( mogoLatLngs.get( 0 ) )
.autoManager( false );
IMogoMarker marker = MarkerServiceHandler.getMarkerManager().addMarker( TAG, options );
marker.startSmooth( mogoLatLngs, intent.getIntExtra( "duration", 30 ) );
}
break;
}
}