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

高德地图路线导航制作

转载请注明出处:https://blog.csdn.net/Dreamer_man/article/details/104193832

由于公司项目需求,特地去官网,重新温习了一遍高德的地图制作。并且自己写了个Demo,主要包含5大功能:地图、定位、自定义marker、路线制定、模拟导航。下面是效果图(代码下载链接在最下面,有需要的拿走):

在这里插入图片描述

1. 准备工作:

首先需要做一些地图的准备工作,这就好比写代码前,要洗手通风一样。

1.1 获取Key

第一步,去高德官网申请key,具体申请方式,获取key已经讲的很清楚了,这里我就不细细道来了。

图1-1 申请Key

在这里插入图片描述

1.2 添加SDK

第二步,添加SDK。这里有两种添加方式,第一种是通过拷贝添加SDK,第二种是通过Gradle集成SDK。这里我选择的是第二种,当然也建议大家用第二种,为什么呢?因为懒,哈哈,当然具体需要集成什么SDK,根据大家业务需求写。如果小伙伴们对第一种也感兴趣,可以参考添加SDK

//3D地图so及jar和导航
implementation 'com.amap.api:navi-3dmap:latest.integration'
//定位功能
implementation 'com.amap.api:location:latest.integration'
//搜索功能
implementation 'com.amap.api:search:latest.integration'
注意(此乃官方吐槽):

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

首先,声明权限

<!--地图包、搜索包需要的基础权限-->
<uses-permission android:name="android.permission.INTERNET" />
<!--允许程序设置内置sd卡的写权限-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--允许程序获取网络状态-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<!--允许程序访问WiFi网络信息-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<!--允许程序访问CellID或WiFi热点来获取粗略的位置-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!--这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--这个权限用于允许程序在手机屏幕关闭后后台进程仍然运行-->
<uses-permission android:name="android.permission.WAKE_LOCK"/>

然后,设置高德key

<meta-data   
    android:name="com.amap.api.v2.apikey"                
    android:value="开发者申请的key"/>

最后,添加定位服务(这点很重要,没有这个服务,应用无法定位)

<service android:name="com.amap.api.location.APSService"></service>

完事具备,只欠东风,咱们就开始垒代码。

2. 地图显示

第一步,在XML文件中定义MapView控件

<com.amap.api.maps.MapView
      android:id="@+id/mapView"
      android:layout_width="match_parent"   
      android:la
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值