自制导航App(包含地图、定位、自定义marker、路线制定、模拟导航等功能)

高德地图路线导航制作

由于公司项目需求,特地去官 ,重新温习了一遍高德的地图制作。并且自己写了个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进行处理,非常感谢!

上一篇 2020年1月5日
下一篇 2020年1月5日

相关推荐