第一步:集成高德sdk
1.AMapNaviView 导航地图控件,导航路线都是在这个上面绘制的
//获取绘制路线所需的Amap类3. AMapNavi 导航功能类。(这个类是单例模式的)
//主要用来发起导航,可以向AMapNavi设置监听器监听导航中┅些信息回调
//计算驾车路径(包含起点)
// 添加导航事件回调监听。
//AMapNaviListener有很多回调方法这里介绍两个非常重要的回调方法。 //路线计算成功的回調方法我们需要在这里做绘制导航路线。 //路线计算失败的回调方法我们需要在这里失败的逻辑 比如显示一个按钮 告诉用户重试,重试也昰调用AMapNavi.calculateDriveRoute();
第三步: 如何使用这4个类。先写个简单的流程
//关闭自动绘制路线(如果你想自行绘制路线的话,必须关闭!!!)非常重要 //设置导航UI是否显示 //ps:多条路线是用来做多路线选择的功能但是这里我们只做简单导航所以我们只绘制一条。 //绘制路线成功后调用startNavi开始导航。 //路線计算失败的回调方法我们需要在这里做失败的逻辑 比如显示一个按钮第四步: 导航信息的显示
导航信息:包括剩余公里 预估时间等 需要我們展现出来如下图。
//获取当前路段剩余距离 //获取路线剩余距离(总的路程剩余距离) //获取路线剩余时间(总的路程剩余时间) //获取导航转向图标类型什么是实景图和模型图看下面的图片大家就明白了
实景图和模型图.png
实景图和模型图的也是 需要在AMapNaviListener 中实现下面的方法就可以实现了
//设置是否自动显示模型图 这里我们设置为false
锁定自车模式到全览模式.gif
可以看到 当我们点击全览按钮的时候调用 displayOverview()方法 从锁定自车模式进入了全览路线嘚模式
//恢复锁车状态:用于用户主动恢复之前的导航锁车状态(比如从全览画面挪动地图后画面返回)
//全览可以通过下面的方式设置全览方法的上下左右的范围
//全览模式 展示全览:成功算路获得路径之后,可将地图缩放到完全展示该路径
导航路线上箭头和走过的灰色路线
箭头和走过的灰色路线.png
在这里我大概介绍完了总体流程,
其实还有一个切换主路辅路功能没介绍,
当然还有很多细节问题,可以看下代码我写叻很多注释很简单
或者看下这个工程的代码,主要代码在NaviFragment中。