高德地图路线导航制作
由于公司项目需求,特地去官 ,重新温习了一遍高德的地图制作。并且自己写了个Demo,主要包含5大功能:地图、定位、自定义marker、路线制定、模拟导航。下面是效果图(代码下载链接在最下面,有需要的拿走):
1.2 添加SDK
第二步,添加SDK。这里有两种添加方式,第一种是通过拷贝添加SDK,第二种是通过Gradle集成SDK。这里我选择的是第二种,当然也建议大家用第二种,为什么呢为懒,哈哈,当然具体需要集成什么SDK,根据大家业务需求写。如果小伙伴们对第一种也感兴趣,可以参考添加SDK。
注意(此乃官方吐槽):
1. navi导航SDK 5.0.0以后版本包含了3D地图SDK,所以请不要同时引入 map3d 和 navi SDK。
2. 依照上述方法引入 SDK 以后,不需要在libs文件夹下导入对应SDK的 so 和 jar 包,会有冲突。
第2点说人话就是,如果在gradle中添加了上面几个依赖后,就不需要添加其他地图so库和jar包(手动滑稽,是不是很方便)
1.3 配置AndroidManifest.xml
第三步,配置AndroidManifest.xml
首先,声明权限
然后,设置高德key
最后,添加定位服务(这点很重要,没有这个服务,应用无法定位)
完事具备,只欠东风,咱们就开始垒代码。
2. 地图显示
第一步,在XML文件中定义MapView控件
第二步,再初始化地图,
注意:
1. mapView.onCreate(savedInstanceState)一定要加上,否则地图无法显示。
2. 在activity生命周期中,对mapView进行相应的处理,demo中有体现。
3. 实时定位
第一步,初始化定位参数,设置定位监听(代码中都有详细的注释)
第二步,实现AMap.setLocationSource监听器,并且回调activate()和deactivate()两个方法。activate()方法是在激活定位的时候触发,需要在里面初始化定位参数,并开始定位。deactivate()方法是在定位停止的时候触发,需要在方法里停止定位,避免不必要的资源浪费。
第三步,在定位回调中设置显示定位小蓝点,isFirstLocationn的作用是防止拖动地图后,定位小蓝点老是返回到屏幕的中心位置。
注意:
1. setMyLocationEnabled(true)方法必须在setLocationSource(this)定位监听之后执行,否则定位会失效。
2. AMap.getUiSettings()是获得高德地图控件对象,可以通过这个方法设置地图控件
4. 自定义marker
第一步,在XML文件中定义marker布局(仅为demo,具体样式根据个人需求定制)
Button android:id="@+id/btn1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="路线制作"/>Button android:id="@+id/btn2" android:layout_width="wrap_content" android声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!