package com.zhaoyang.driver.ui.main;
|
|
import android.content.Intent;
|
import android.os.Bundle;
|
|
import com.amap.api.navi.AMapNavi;
|
import com.amap.api.navi.AMapNaviListener;
|
import com.amap.api.navi.AMapNaviView;
|
import com.amap.api.navi.AMapNaviViewListener;
|
import com.amap.api.navi.enums.NaviType;
|
import com.amap.api.navi.model.AMapCalcRouteResult;
|
import com.amap.api.navi.model.AMapLaneInfo;
|
import com.amap.api.navi.model.AMapModelCross;
|
import com.amap.api.navi.model.AMapNaviCameraInfo;
|
import com.amap.api.navi.model.AMapNaviCross;
|
import com.amap.api.navi.model.AMapNaviLocation;
|
import com.amap.api.navi.model.AMapNaviRouteNotifyData;
|
import com.amap.api.navi.model.AMapNaviTrafficFacilityInfo;
|
import com.amap.api.navi.model.AMapServiceAreaInfo;
|
import com.amap.api.navi.model.AimLessModeCongestionInfo;
|
import com.amap.api.navi.model.AimLessModeStat;
|
import com.amap.api.navi.model.NaviInfo;
|
import com.amap.api.navi.model.NaviLatLng;
|
import com.zhaoyang.driver.R;
|
import com.zhaoyang.driver.base.MyBaseActivity;
|
import com.zhaoyang.driver.base.gaode.gpsnav.util.TTSController;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class MainNavActivity extends MyBaseActivity implements AMapNaviViewListener, AMapNaviListener {
|
|
|
@Override
|
public void setContentView() {
|
// setContentView(R.layout.activity_navigation_view);
|
}
|
|
@Override
|
public void initView() {
|
|
}
|
|
@Override
|
public void setOnclick() {
|
|
}
|
|
private AMapNaviView mAMapNaviView;
|
AMapNavi mAMapNavi;
|
boolean mIsGps = false;
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
// requestWindowFeature(Window.FEATURE_NO_TITLE);
|
// setContentView(R.layout.activity_basic_navi);
|
setContentView(R.layout.activity_navigation_view);
|
TTSController mTtsManager = TTSController.getInstance(getApplicationContext());
|
mTtsManager.init();
|
|
mAMapNaviView = (AMapNaviView) findViewById(R.id.amap_navigation);
|
mAMapNaviView.onCreate(savedInstanceState);
|
mAMapNaviView.setAMapNaviViewListener(this);
|
|
mAMapNavi = AMapNavi.getInstance(getApplicationContext());
|
mAMapNavi.addAMapNaviListener(this);
|
mAMapNavi.addAMapNaviListener(mTtsManager);
|
mAMapNavi.setEmulatorNaviSpeed(60);
|
getNaviParam();
|
}
|
|
//实现AMapNaviView的生命周期函数
|
@Override
|
protected void onResume() {
|
super.onResume();
|
mAMapNaviView.onResume();
|
}
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
mAMapNaviView.onPause();
|
// 仅仅是停止你当前在说的这句话,一会到新的路口还是会再说的
|
// mTtsManager.stopSpeaking();
|
//
|
// 停止导航之后,会触及底层stop,然后就不会再有回调了,但是讯飞当前还是没有说完的半句话还是会说完
|
// mAMapNavi.stopNavi();
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
mAMapNaviView.onDestroy();
|
mAMapNavi.stopNavi();
|
// mAMapNavi.destroy();
|
// mTtsManager.destroy();
|
}
|
|
//获取intent参数并计算路线
|
private void getNaviParam() {
|
Intent intent = getIntent();
|
if (intent == null) {
|
return;
|
}
|
boolean mIsGps = intent.getBooleanExtra("gps", false);
|
NaviLatLng start = intent.getParcelableExtra("start");
|
NaviLatLng end = intent.getParcelableExtra("end");
|
calculateDriveRoute(start, end);
|
}
|
|
//驾车路径规划计算,计算单条路径
|
private void calculateDriveRoute(NaviLatLng start, NaviLatLng end) {
|
int strategyFlag = 0;
|
List<NaviLatLng> startList = new ArrayList<NaviLatLng>();
|
/**
|
* 途径点坐标集合
|
*/
|
List<NaviLatLng> wayList = new ArrayList<NaviLatLng>();
|
/**
|
* 终点坐标集合[建议就一个终点]
|
*/
|
List<NaviLatLng> endList = new ArrayList<NaviLatLng>();
|
try {
|
strategyFlag = mAMapNavi.strategyConvert(true, false, false, true, false);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
startList.add(start);
|
endList.add(end);
|
mAMapNavi.calculateDriveRoute(startList, endList, wayList, strategyFlag);
|
}
|
|
|
@Override
|
public void onNaviSetting() {
|
|
}
|
|
@Override
|
public void onNaviCancel() {
|
|
}
|
|
@Override
|
public boolean onNaviBackClick() {
|
return false;
|
}
|
|
@Override
|
public void onNaviMapMode(int i) {
|
|
}
|
|
@Override
|
public void onNaviTurnClick() {
|
|
}
|
|
@Override
|
public void onNextRoadClick() {
|
|
}
|
|
@Override
|
public void onScanViewButtonClick() {
|
|
}
|
|
@Override
|
public void onLockMap(boolean b) {
|
|
}
|
|
@Override
|
public void onNaviViewLoaded() {
|
|
}
|
|
@Override
|
public void onMapTypeChanged(int i) {
|
|
}
|
|
@Override
|
public void onNaviViewShowMode(int i) {
|
|
}
|
|
@Override
|
public void onInitNaviFailure() {
|
|
}
|
|
@Override
|
public void onInitNaviSuccess() {
|
|
}
|
|
@Override
|
public void onStartNavi(int i) {
|
|
}
|
|
@Override
|
public void onTrafficStatusUpdate() {
|
|
}
|
|
@Override
|
public void onLocationChange(AMapNaviLocation aMapNaviLocation) {
|
|
}
|
|
@Override
|
public void onGetNavigationText(int i, String s) {
|
|
}
|
|
@Override
|
public void onGetNavigationText(String s) {
|
|
}
|
|
@Override
|
public void onEndEmulatorNavi() {
|
|
}
|
|
@Override
|
public void onArriveDestination() {
|
|
}
|
|
@Override
|
public void onCalculateRouteFailure(int i) {
|
|
}
|
|
@Override
|
public void onReCalculateRouteForYaw() {
|
|
}
|
|
@Override
|
public void onReCalculateRouteForTrafficJam() {
|
|
}
|
|
@Override
|
public void onArrivedWayPoint(int i) {
|
|
}
|
|
@Override
|
public void onGpsOpenStatus(boolean b) {
|
|
}
|
|
@Override
|
public void onNaviInfoUpdate(NaviInfo naviInfo) {
|
|
}
|
|
|
@Override
|
public void updateCameraInfo(AMapNaviCameraInfo[] aMapNaviCameraInfos) {
|
|
}
|
|
@Override
|
public void updateIntervalCameraInfo(AMapNaviCameraInfo aMapNaviCameraInfo, AMapNaviCameraInfo aMapNaviCameraInfo1, int i) {
|
|
}
|
|
@Override
|
public void onServiceAreaUpdate(AMapServiceAreaInfo[] aMapServiceAreaInfos) {
|
|
}
|
|
@Override
|
public void showCross(AMapNaviCross aMapNaviCross) {
|
|
}
|
|
@Override
|
public void hideCross() {
|
|
}
|
|
@Override
|
public void showModeCross(AMapModelCross aMapModelCross) {
|
|
}
|
|
@Override
|
public void hideModeCross() {
|
|
}
|
|
@Override
|
public void showLaneInfo(AMapLaneInfo[] aMapLaneInfos, byte[] bytes, byte[] bytes1) {
|
|
}
|
|
@Override
|
public void showLaneInfo(AMapLaneInfo aMapLaneInfo) {
|
|
}
|
|
@Override
|
public void hideLaneInfo() {
|
|
}
|
|
@Override
|
public void onCalculateRouteSuccess(int[] ints) {
|
if (mIsGps) {
|
mAMapNavi.startNavi(NaviType.GPS);
|
} else {
|
mAMapNavi.startNavi(NaviType.EMULATOR);
|
}
|
}
|
|
@Override
|
public void notifyParallelRoad(int i) {
|
|
}
|
|
@Override
|
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos) {
|
|
}
|
|
@Override
|
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo) {
|
|
}
|
|
|
@Override
|
public void updateAimlessModeStatistics(AimLessModeStat aimLessModeStat) {
|
|
}
|
|
@Override
|
public void updateAimlessModeCongestionInfo(AimLessModeCongestionInfo aimLessModeCongestionInfo) {
|
|
}
|
|
@Override
|
public void onPlayRing(int i) {
|
|
}
|
|
@Override
|
public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) {
|
|
}
|
|
@Override
|
public void onCalculateRouteFailure(AMapCalcRouteResult aMapCalcRouteResult) {
|
|
}
|
|
@Override
|
public void onNaviRouteNotify(AMapNaviRouteNotifyData aMapNaviRouteNotifyData) {
|
|
}
|
|
@Override
|
public void onGpsSignalWeak(boolean b) {
|
|
}
|
|
@Override
|
public void onPointerCaptureChanged(boolean hasCapture) {
|
|
}
|
}
|