文章目录
前言
虽然高德地图用起来没有百度地图那么丝滑,但是兼容还是挺好的,我的手机调试百度地图的api时总是报错,后来改成了高德地图,虽然高德地图初始的布局没有百度的好看,下载时官方文档也没有百度地图的详细,但是还是挺好用的。
我的项目使用只需要使用到高德地图的地图和定位SDK,便以高德地图的地图SDK为例。
一、Android地图SDK简介
高德开放平台目前开放了Android 地图 SDK 以及 Android 地图 SDK 专业版两套地图SDK工具。
高德地图 Android SDK 是一套地图开发调用接口,开发者可以轻松地在自己的Android应用中加入地图相关的功能,包括:地图显示(含室内、室外地图)、与地图交互、在地图上绘制、兴趣点搜索、地理编码、离线地图等功能。
高德地图 Android SDK 专业版是在 Android SDK 已有服务的基础上,新增支持了自定义地图在线加载、自定义地图元素纹理等功能,便于开发者完成基于自身场景的更深层、更个性化地图的开发需求。
V4.0.0开始,除了支持手机设备外,还支持Android Wear。
二、获取高德地图开发Key
2.1 获取SHA1安全码
2.1.1 获取调试版SHA1安全码
打开Android studio 底部的Terminal,编译:
keytool -list -v -keystore debug.keystore
当然,这么写一般都会错,要么是keytool不是内部命令,要不找不到debug.keystore。
解决办法:
1.keytool:点击File→Other Settings→Default Project Structure获取到SDK地址,加上\bin即是keytool可执行地址,cd进入。
2.debug.keystore:默认目录位置:C:\Users<用户>.android\debug.keystore
3.以我为例,输入的代码如下:
cd D:\Program Files\Android\Android Studio\jre\bin
keytool.exe -list -v -keystore C:\Users\lenovo\.android\debug.keystore
4.输入数据库口令直接回车就可以了
2.1.2 获取发布版SHA1安全码
(1)Bulid→Generate Signed Bundle/APK…→选择APK→NEXT
(2)例如,我有Heiya.jks,可以直接点next,没有的话点create new,创建好了之后再next
(3)将之前查看调试版密码文件的路径改为key store path
例如我的:keytool.exe -list -v -keystore “D:\Program Files\Android\Android Studio\Androidkey\heiya\Heiya.jks”
(4)输入密钥库口令-就是之前创建密钥库的 key store password.
2.2 获取包名
进入模块的build.gradle,applicationId即为包名。
2.3 获得Key
高德地图API官网:https://lbs.amap.com/
进入控制台→应用管理→我的应用→创建新应用→添加
你会很惊奇的发现需要的东西刚刚都准备好了~
返回“我的应用”界面就可以看到自己申请的key了
三、配置高德地图
3.1 下载高德地图SDK
我开发的“校园巴士模块”需要用到地图sdk和定位sdk,便在https://lbs.amap.com/api/android-sdk/download中的开发包定制下载中选择“地图SDK”和“定位SDK”。按开发项目实际需要选择下载。
3.2 添加sdk到项目中
3.2.1 添加jar文件
解压下载的sdk文件,将下载的地图SDK的jar包复制到项目的 libs 目录下。
右键点击新黏贴的jar,在弹出菜单中点击AddAsLibrary.选择你要导入到的那个module。
3.2.2 添加so库
方法一:将下载地图包里的含so库文件的文件夹移入和jar文件一样移入libs文件夹。
然后打开build.gradle(app),找到 sourceSets 标签,在里面增加一项配置,如图所示:
方法二:不需要修改build.gradle。在 main 目录下创建文件夹 jniLibs,然后将含so库文件的文件夹移入就可以了。
四、开发前的准备
4.1 添加高德地图key
在AndroidManifest.xml的application标签中,添加如下代码:
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="你申请到的高德地图Key"/>
</application>
4.2 声明service组件
在AndroidManifest.xml的application标签中声明service组件,每个app拥有自己单独的定位service。
<service android:name="com.amap.api.location.APSService"/>
4.3 配置好相关权限
在AndroidManifest.xml中配置权限:
<!--用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<!--用于访问GPS定位-->
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<!--用于获取运营商信息,用于支持提供运营商信息相关的接口-->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
<!--用于访问wifi网络信息,wifi信息会用于进行网络定位-->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<!--用于获取wifi的获取权限,wifi信息会用来进行网络定位-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
<!--用于访问网络,网络定位需要上网-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<!--用于读取手机当前的状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>
<!--用于写入缓存数据到扩展存储卡-->
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<!--允许程序读写手机状态和身份-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
总结
在Android studio中如何导入高德地图已经讲得很详细了,其实导入百度地图的方法差不多,可以类推一下。做好了这些步骤之后,就可以开始进行与高德地图有关的开发了。