|
package com.electric.chargingpile.activity;
import android.app.Activity;
import android.graphics.BitmapFactory;
import android.os.Build;
import android.os.Bundle;
import android.util.Log;
import android.view.Window;
import android.view.WindowManager;
import com.amap.api.maps.AMapException;
import com.amap.api.maps.model.BitmapDescriptor;
import com.amap.api.maps.model.BitmapDescriptorFactory;
import com.amap.api.navi.AMapNaviViewOptions;
import com.amap.api.navi.model.NaviLatLng;
import com.amap.api.navi.model.RouteOverlayOptions;
import com.amap.api.navi.view.RouteOverLay;
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.AMapNaviPath;
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.electric.chargingpile.R;
import java.util.List;
/**
* 创建时间:15/12/7 18:35
* 项目名称:newNaviDemo
*
* @author lingxiang.wang
* @email lingxiang.wang@alibaba-inc.com
* 类说明:
*/
public class SimpleNaviActivity extends Activity implements AMapNaviListener, AMapNaviViewListener {
private AMapNaviView mAMapNaviView;
private AMapNavi mAMapNavi;
// private TTSController mTtsManager;
private AMapNaviViewListener aMapNaviViewListener;
private boolean isGps;
private RouteOverLay routeOverLay;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_simple_navi);
setStatusBarColor(SimpleNaviActivity.this, R.color.black);
mAMapNaviView = (AMapNaviView) findViewById(R.id.navi_view);
mAMapNaviView.onCreate(savedInstanceState);
mAMapNaviView.setAMapNaviViewListener(this);
AMapNaviViewOptions options = mAMapNaviView.getViewOptions();
options.setAutoDrawRoute(false);
options.setAfterRouteAutoGray(true);
mAMapNaviView.setViewOptions(options);
try {
mAMapNavi = AMapNavi.getInstance(getApplicationContext());
} catch (AMapException e) {
e.printStackTrace();
}
mAMapNavi.addAMapNaviListener(this);
mAMapNavi.setEmulatorNaviSpeed(60);
mAMapNavi.setUseInnerVoice(true);
isGps = getIntent().getBooleanExtra("gps", false);
mAMapNavi.calculateDriveRoute(RoutePlanMapActivity.startList, RoutePlanMapActivity.endList, RoutePlanMapActivity.zhongList, 10);
if (isGps)
mAMapNavi.startNavi(NaviType.GPS);
else {
mAMapNavi.startNavi(NaviType.EMULATOR);
}
}
public static void setStatusBarColor(Activity activity, int colorId) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = activity.getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(activity.getResources().getColor(colorId));
} else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
}
}
@Override
protected void onResume() {
super.onResume();
mAMapNaviView.onResume();
}
@Override
protected void onPause() {
super.onPause();
mAMapNaviView.onPause();
}
@Override
protected void onDestroy() {
super.onDestroy();
mAMapNaviView.onDestroy();
mAMapNavi.stopNavi();
}
@Override
public void onInitNaviFailure() {
Log.e("onInitNaviFailure", "---");
}
@Override
public void onInitNaviSuccess() {
Log.e("onInitNaviSuccess", "---");
}
@Override
public void onStartNavi(int i) {
Log.e("onStartNavi", "---");
}
@Override
public void onTrafficStatusUpdate() {
Log.e("onTrafficStatusUpdate", "---");
}
@Override
public void onLocationChange(AMapNaviLocation aMapNaviLocation) {
try {
routeOverLay.updatePolyline(aMapNaviLocation);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onGetNavigationText(int i, String s) {
}
@Override
public void onGetNavigationText(String s) {
}
@Override
public void onEndEmulatorNavi() {
Log.e("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 updateCameraInfo(AMapNaviCameraInfo[] aMapNaviCameraInfos) {
}
@Override
public void updateIntervalCameraInfo(AMapNaviCameraInfo aMapNaviCameraInfo, AMapNaviCameraInfo aMapNaviCameraInfo1, int i) {
}
@Override
public void onServiceAreaUpdate(AMapServiceAreaInfo[] aMapServiceAreaInfos) {
}
@Override
public void onNaviInfoUpdate(NaviInfo naviInfo) {
try {
List<NaviLatLng> naviLatLngList = routeOverLay.getArrowPoints(naviInfo.getCurStep());
routeOverLay.drawArrow(naviLatLngList);
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo aMapNaviTrafficFacilityInfo) {
}
@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) {
}
@Override
public void notifyParallelRoad(int i) {
}
@Override
public void OnUpdateTrafficFacility(AMapNaviTrafficFacilityInfo[] aMapNaviTrafficFacilityInfos) {
}
@Override
public void updateAimlessModeStatistics(AimLessModeStat aimLessModeStat) {
}
@Override
public void updateAimlessModeCongestionInfo(AimLessModeCongestionInfo aimLessModeCongestionInfo) {
}
@Override
public void onPlayRing(int i) {
}
@Override
public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) {
int[] routeIds = aMapCalcRouteResult.getRouteid();
int routeId = routeIds[0];
AMapNaviPath aMapNaviPath = mAMapNavi.getNaviPaths().get(routeId);
routeOverLay = new RouteOverLay(mAMapNaviView.getMap(), aMapNaviPath, SimpleNaviActivity.this);
routeOverLay.setStartPointBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.icon_newstarr));
routeOverLay.setEndPointBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.icon_newstopr));
routeOverLay.setWayPointBitmap(BitmapFactory.decodeResource(this.getResources(), R.drawable.icon_sgreen));
routeOverLay.addToMap();
BitmapDescriptor afterGrayTraffic = BitmapDescriptorFactory.fromResource(R.drawable.after_route_gray);
RouteOverlayOptions routeOverlayOptions = new RouteOverlayOptions();
routeOverlayOptions.setPassRoute(afterGrayTraffic.getBitmap());
routeOverLay.setRouteOverlayOptions(routeOverlayOptions);
}
@Override
public void onCalculateRouteFailure(AMapCalcRouteResult aMapCalcRouteResult) {
}
@Override
public void onNaviRouteNotify(AMapNaviRouteNotifyData aMapNaviRouteNotifyData) {
}
@Override
public void onGpsSignalWeak(boolean b) {
}
@Override
public void onNaviSetting() {
}
@Override
public void onNaviCancel() {
finish();
}
@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 onPointerCaptureChanged(boolean hasCapture) {
}
}
|