文章目录

  • 前言
  • 一、Android地图SDK简介
  • 二、获取高德地图开发Key
  • 2.1 获取SHA1安全码
  • 2.1.1 获取调试版SHA1安全码
  • 2.1.2 获取发布版SHA1安全码
  • 2.2 获取包名
  • 2.3 获得Key
  • 三、配置高德地图
  • 3.1 下载高德地图SDK
  • 3.2 添加sdk到项目中
  • 3.2.1 添加jar文件
  • 3.2.2 添加so库
  • 四、开发前的准备
  • 4.1 添加高德地图key
  • 4.2 声明service组件
  • 4.3 配置好相关权限
  • 总结



前言

  虽然高德地图用起来没有百度地图那么丝滑,但是兼容还是挺好的,我的手机调试百度地图的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。

android 定位图标 高德地图 android调用高德地图导航_android


解决办法:

1.keytool:点击File→Other Settings→Default Project Structure获取到SDK地址,加上\bin即是keytool可执行地址,cd进入。

android 定位图标 高德地图 android调用高德地图导航_安卓_02


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.输入数据库口令直接回车就可以了

android 定位图标 高德地图 android调用高德地图导航_安卓_03

2.1.2 获取发布版SHA1安全码

(1)Bulid→Generate Signed Bundle/APK…→选择APK→NEXT

(2)例如,我有Heiya.jks,可以直接点next,没有的话点create new,创建好了之后再next

android 定位图标 高德地图 android调用高德地图导航_安卓_04


(3)将之前查看调试版密码文件的路径改为key store path

android 定位图标 高德地图 android调用高德地图导航_api_05


例如我的:keytool.exe -list -v -keystore “D:\Program Files\Android\Android Studio\Androidkey\heiya\Heiya.jks”

(4)输入密钥库口令-就是之前创建密钥库的 key store password.

android 定位图标 高德地图 android调用高德地图导航_安卓_06

2.2 获取包名

进入模块的build.gradle,applicationId即为包名。

2.3 获得Key

高德地图API官网:https://lbs.amap.com/进入控制台→应用管理→我的应用→创建新应用→添加

你会很惊奇的发现需要的东西刚刚都准备好了~

android 定位图标 高德地图 android调用高德地图导航_android 定位图标 高德地图_07


返回“我的应用”界面就可以看到自己申请的key了

android 定位图标 高德地图 android调用高德地图导航_街景地图_08

三、配置高德地图

3.1 下载高德地图SDK

我开发的“校园巴士模块”需要用到地图sdk和定位sdk,便在https://lbs.amap.com/api/android-sdk/download中的开发包定制下载中选择“地图SDK”和“定位SDK”。按开发项目实际需要选择下载。

android 定位图标 高德地图 android调用高德地图导航_android_09

3.2 添加sdk到项目中

3.2.1 添加jar文件

解压下载的sdk文件,将下载的地图SDK的jar包复制到项目的 libs 目录下。

android 定位图标 高德地图 android调用高德地图导航_街景地图_10


android 定位图标 高德地图 android调用高德地图导航_api_11


右键点击新黏贴的jar,在弹出菜单中点击AddAsLibrary.选择你要导入到的那个module。

3.2.2 添加so库

方法一:将下载地图包里的含so库文件的文件夹移入和jar文件一样移入libs文件夹。

android 定位图标 高德地图 android调用高德地图导航_api_12


然后打开build.gradle(app),找到 sourceSets 标签,在里面增加一项配置,如图所示:

android 定位图标 高德地图 android调用高德地图导航_街景地图_13


方法二:不需要修改build.gradle。在 main 目录下创建文件夹 jniLibs,然后将含so库文件的文件夹移入就可以了。

android 定位图标 高德地图 android调用高德地图导航_安卓_14

四、开发前的准备

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中如何导入高德地图已经讲得很详细了,其实导入百度地图的方法差不多,可以类推一下。做好了这些步骤之后,就可以开始进行与高德地图有关的开发了。