示例中心
功能在线体验
menu 导航 closed 关闭
您现在的位置: 开发 > Android 导航SDK > 概述 >

高德 开发 Android 导航SDK 概述

更新时间:2020年10月26日

Android导航SDK是一款针对在线导航的产品,产品功能涵盖了路径规划、专业导航、UI界面定制、导航组件、货车导航等。并且,导航路径规划与实时交通信息相结合,力求为用户提供更加合理、准确、人性化的导航服务。应用场景包括但不限于O2O、网约车出行、货运物流快递等。

在您接入SDK的前中后整个过程中,我们都会提供全方位的支持,包括官网文档、官方Demo商务合作工单、大客户钉钉群、现场支持等。

面向的读者

Android导航SDK是提供给具有一定Android编程经验和了解面向对象概念的读者使用的。 

  • 模拟导航
    protected NaviLatLng mEndLatlng = new NaviLatLng(40.084894,116.603039);
    protected NaviLatLng mStartLatlng = new NaviLatLng(39.825934,116.342972);
    protected final List<NaviLatLng> sList = new ArrayList<NaviLatLng>();
    protected final List<NaviLatLng> eList = new ArrayList<NaviLatLng>();
    protected List<NaviLatLng> mWayPointList = new ArrayList<NaviLatLng>();
    @Override
    public void onInitNaviSuccess() {
    	super.onInitNaviSuccess();
    	sList.add(mStartLatlng);
    	eList.add(mEndLatlng);
    	int strategy = 0;
    	strategy = mAMapNavi.strategyConvert(true, false, false, false, false);
    	AMapCarInfo carInfo = new AMapCarInfo();
    	mAMapNavi.calculateDriveRoute(sList, eList, mWayPointList, strategy);
    } 
    @Override
    public void onCalculateRouteSuccess(AMapCalcRouteResult aMapCalcRouteResult) {
    	super.onCalculateRouteSuccess(aMapCalcRouteResult);
    	mAMapNavi.startNavi(NaviType.EMULATOR);
    }
    
    
        
  • 导航组件
     LatLng p2 = new LatLng(39.917337, 116.397056);//故宫博物院
     LatLng p3 = new LatLng(39.904556, 116.427231);//北京站
     AmapNaviParams params = new AmapNaviParams(new Poi("北京站", p3, ""), null, new Poi("故宫博物院", p2, ""), AmapNaviType.DRIVER);
     params.setUseInnerVoice(true);
     AmapNaviPage.getInstance().showRouteActivity(getApplicationContext(), params, IndexActivity.this);
  • 货车导航组件
     LatLng p2 = new LatLng(39.917337, 116.397056);//故宫博物院
     LatLng p3 = new LatLng(39.904556, 116.427231);//北京站
     AmapNaviParams params = new AmapNaviParams(new Poi("北京站", p3, ""), null, new Poi("故宫博物院", p2, ""), AmapNaviType.DRIVER);
     params.setUseInnerVoice(true);
     AmapNaviPage.getInstance().showRouteActivity(getApplicationContext(), params, IndexActivity.this);
  • AMapNaviView完全自定义UI和图面
    private TextView textNextRoadDistance;//下个路口距离
    private TextView textNextRoadName;//下个路名
    private NextTurnTipView nextTurnTipView;//转向箭头,Demo中开源
    /** ------- 导航基本信息的回调 ----- */
    @Override
    public void onNaviInfoUpdate(NaviInfo naviInfo) {
     		super.onNaviInfoUpdate(naviInfo);
    
    		/**
    		* 更新路口转向图标
    		*/
    		if(naviInfo.getIconBitmap() != null){
    			nextTurnTipView.setImageBitmap(naviInfo.getIconBitmap());
    		}else{
    			nextTurnTipView.setIconType(naviInfo.getIconType());
    		}
    		/**
    		* 更新下一路口 路名及 距离
    		*/
    		textNextRoadName.setText(naviInfo.getNextRoadName());
    		textNextRoadDistance.setText(NaviUtil.formatKM(naviInfo.getCurStepRetainDistance()));
    }
    
    private DriveWayLinear mDriveWayView;//车道信息,Demo中开源
    /** ----- start 车道信息的回调 start ------- */
    @Override
    public void showLaneInfo(AMapLaneInfo aMapLaneInfo) {
    		mDriveWayView.setVisibility(View.VISIBLE);
    		mDriveWayView.buildDriveWay(aMapLaneInfo);
    }
    private TrafficProgressBar mTrafficBarView;//路况条,Demo中开源
    @Override
    public void onNaviInfoUpdate(NaviInfo naviInfo) {
    		super.onNaviInfoUpdate(naviInfo);
    		int allLength = mAMapNavi.getNaviPath().getAllLength();
    		/**
    		* 导航路况条 更新
    		*/
    		List<AMapTrafficStatus> trafficStatuses = mAMapNavi.getTrafficStatuses(0, 0);
    		mTrafficBarView.update(allLength, naviInfo.getPathRetainDistance(), trafficStatuses);
    }
    
    /**
    * 自车位置类
    */
    CarOverlay carOverlay;//自车类,Demo中开源
    carOverlay = new CarOverlay(AllCustomCarRouteActivity.this, mAMapNaviView);
    /**
    * GPS 定位信息的回调函数
    * @param location 当前定位的GPS信息
    */
    @Override
    public void onLocationChange(AMapNaviLocation location) {
    		if (carOverlay != null && location != null) {
    				carOverlay.draw(mAMapNaviView.getMap(), new LatLng(location.getCoord().getLatitude(), location.getCoord().getLongitude()), location.getBearing());
    		}
    }
    
    private ZoomInIntersectionView mRealCrossView;//实景图,Demo开源
    private AMapModeCrossOverlay mModeCrossView;//模型图,Demo开源
    @Override
    public void showCross(AMapNaviCross aMapNaviCross) {
    		mRealCrossView.setVisibility(View.VISIBLE);
    		mRealCrossView.setIntersectionBitMap(aMapNaviCross);
    }
    
    @Override
    public void hideCross() {
    		mRealCrossView.setVisibility(View.GONE);
    }
    
    @Override
    public void showModeCross(AMapModelCross aMapModelCross) {
    		try {
    				mModeCrossView.showCrossOverlay(aMapModelCross.getPicBuf1());
    		} catch (Throwable e) {
    				e.printStackTrace();
    		}
    }
    
    @Override
    public void hideModeCross() {
    	mModeCrossView.hideCrossOverlay();
    }
    
    private AMapCameraOverlay cameraOverlay;//摄像头实例,Demo开源
    @Override
    public void updateCameraInfo(AMapNaviCameraInfo[] aMapCameraInfos) {
    		if (cameraOverlay != null) {
    			cameraOverlay.draw(mAMapNaviView.getMap(), aMapCameraInfos);
    		}
    }

兼容性

v6.4.0及以上版本支持Android 6.0及以上系统

给开发者的建议

高德开放平台提供的地图API/SDK,任何非盈利性网站/应用均可免费使用 。请参阅《高德地图API使用条款》获得详细信息。

新用户
福利
示例
中心
常见
问题