Android高德导航自定义UI

今天接近一整天都在搞高德导航自定义UI,晚上下班前,终于搞好了,大致的界面就这这样咯,
这里写图片描述

高德导航官方有一部分教程,http://lbs.amap.com/api/android-navi-sdk/guide/navigation-map/ui-setting/ 大家可以参考,但不是很详细

首先要知道一个方法
AMapNaviViewOptions mapOptions = mAMapNaviView.getViewOptions();
mapOptions.setLayoutVisible(false);
该方法设置导航界面UI是否显示,也就是除了地图之外其他的元素是否显示,设置为false之后,这些界面就可以随便自己定义了。
对于那些像指南针、激光柱、路段纹理,这些可见icon或者纹理等就不说了,看教程即可。

对于像图示中,还有多少米,进入下个xxxx路口,还剩多少公里和时间等等,这样的数据,是怎么得到的呢?
关键的一个接口AMapNaviListener .onNaviInfoUpdate(NaviInfo naviinfo)
naviinfo对象中有很多我们想要的信息,像下个路口的信息,距离,时间,还有转向的类型,等等,我们就可以拿出来去自定义我们的界面,具体的信息详见http://a.amap.com/lbs/static/unzip/Android_Navi_Doc/index.html

另外一个注意的点是,拖动地图会导致车头不指向手机上方,或者中心点偏离屏幕中心,会回调 onNaviMapMode(int isLock) 方法,
0:车头朝上状态;1:非锁车状态,即车标可以任意显示在地图区域内。
我们只需要调用mAMapNaviView.recoverLockMode();就可以使中心点回到屏幕中心,模拟继续导航的操作。

由于某些功能原因,从百度地图转到高德地图,顺便提一下百度地图中遇到的坑
1.fragments重叠 TextureMapView和Mapview
2.滑动冲突
3.生命周期不重写,切换地图,造成的画面模糊
4.地图sdk的路径规划,得出的最优路径,不能和导航进行结合

猜你喜欢

转载自blog.csdn.net/wuzhiguo1314/article/details/53174221