01 搭建基础脚手架
由于工作需要,最近在研究Android版百度地图SDK,仔细阅读其公开文档(官方教程)后,只想说一句:百度的教程牛叉,写的很不通俗易懂,新手按照那个文档来操作会遇到各种坑,根本很难实现其简单地图功能。而且文档长久没有更新,地图的SDK中很多方法和变量都已经被弃用掉,反正就是很难按照官方给的教程自己能顺顺利利的搞出来。
在自己的摸索和探究下,完成了Android版百度地图的常规开发业务
。最近我就在想是不是可以写一个基础教程出来,这样新手参考这个教程就能避免很多坑,而且也能快速上手实现其基础功能,把更多精力放到业务逻辑中,希望这份教程能帮助到大家。
搭建基础环境
了解基础知识
百度地图SDK地址:https://lbsyun.baidu.com/index.php?title=androidsdk
百度定位SDK地址:https://lbsyun.baidu.com/index.php?title=android-locsdk
百度地图是目前国内地图行业的佼佼者,由于地图覆盖面广、精度高、系统稳定且用户基数众大,所以很多开发者从一开始就选择百度地图作为项目的第三方底层地图功能。
百度地图SDK分为多种开发包,有Android SDK,IOS SDK,Web开发 SDK,可满足用户多场景的使用。
虽然说百度地图文档操作起来各种隐形的坑,但是如果新手想全方位认识了解百度地图还是需要从头开始仔细进行阅读,对后期业务开发很有帮助(毕竟是官方写的东西,有些技术点还是有罗列的)。
地图SDK总目录
第一: 重点了解的主要是开发指南,里面对于地图的实现细节进行了阐述。
第二: 其次对于上面图片中的常见问题也要进行仔细阅读,你在按照教程学习时,遇到的80%的Bug都能在常见问题栏找到对应的解决方法。
第三: 在示例中心,你可以下载到目前百度官方给的Demo代码,你可以根据你需要实现的业务来下载进行学习。
这个教程后面我会将代码上传到Gitee和Github上,大家可以自行进行下载学习。
也可以关注我的原创公众号【Andy阿辉】,获取对应的源码,进行交流学习。
要想实现百度地图的嵌套使用,必须按照以下几个步骤来操作进行。
注册和申请密钥
其实注册百度账号,申请成为百度的开发者,后续在开发过程中,对于每一个需要使用百度地图的软件,都需要在百度地图中申请一个密钥,才可以正常的加载和访问。
下载特定SDK,引入到指定项目
百度地图将自身的资源和代码都封装集成到了特定的SDK中,我们想实现百度地图功能,必须先下载对应的SDK并将其成功引入到项目中。
配置项目中地图的相关环境
配置其特定的环境,让百度地图SDK可以正常工作,否则百度地图无法在Android项目中被应用。
1、注册和申请密钥
百度地图教程中在“获取密钥>>”栏和【开发指南-项目创建-注册和获取密钥】中单独写了一页进行描述。
教程:https://lbsyun.baidu.com/index.php?title=androidsdk/guide/create-project/ak
百度地图 SDK开发密钥的申请地址为:https://lbs.baidu.com/apiconsole/key
开发者在使用SDK之前需要获取百度地图移动版开发密钥(AK),该AK与您的百度账户相关联。请妥善保存您的AK,地图初始化时需要使用AK。
你可以按照上面的要求进行注册和申请,总共有以下几点:
先申请百度账号,进行登录。
登录后进去API控制台。
点击“创建应用”开始申请开发密钥。
填写应用名称,注意应用类型选择“Android SDK”、正确填写SHA1 和 程序包名(SHA1和包名的获取方法见下文)。如图:
申请密钥
申请的前提是你得有一个可以运行的Android项目,因为这里需要使用到AppliacationID值,这里的流程你都可以参考百度官方给的文档进行操作,很简单,没有什么难度。其中需要有几点需要注意的问题,目前在官方文档中没有重点说明,你在操作的过程中一定会遇到的(毕竟我遇到了)。
可以看到在上面图片中我特别标记为红色的有三处,其中第二是特别需要注意的,官方文档只是告诉你在cmd中执行下面命令就可以得到其加密的SHA1值,但是它说的是通用的Debug版本,按照教程操作,你只能得到下面“开发板SHA1”的值,及时你编码完成发布后,百度地图在加载使用时会出现加载不出来,无法显示等问题。
官方申请发布版SHA1地址:https://lbsyun.baidu.com/index.php?title=FAQ/SHA1
输入命令行和密码,即可获取SHA1等信息;
官方在介绍时用了三种方式进行了演示,很全面,但是它在这块没有给大家交代清楚会遇到问题,没有把开发版和发布版进行区别,目前根据教程得到的SHA1是开发版的,根本没有说发布版的事情。
命令行:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey (注意目录选择、开发版本、发布版本等问题)
这里使用CMD的方式来演示下如何获取开发版和发布版的SHA1值。
运行进入控制台
Windows:运行 -> 输入cmd -> 确定。
Mac:直接打开 终端。
在控制台内,定位到.android文件夹,输入cd .android
Windows与Mac操作一致,如下截图为Win效果。
定位到android文件夹
官方提示在此文件夹下执行下面代码,即可得到SHA1的值。
keytool -list -v -keystore ~/.android/debug.keystore -alias android debugkey
操作中的密码为原始密码一般为android,开发者根据实际情况填写。
可以看到下面图片,是我得到的SHA1的值,其实这里得到的是开发版的值,可以写到上面开发版的位置处。
开发版密钥
由于Android Studio的更新,目前我们发布软件时,得使用新的密钥或自己定义的,它的结尾是.jks的,我们如果想生产发布时的SHA1值,那么得在CMD中定位到新密钥处,利用新密钥来生产SHA1值。
发布版密钥
此时将发布版和开发版密钥,以及PackageName填写到上文需要填写的地方就顺利完成了百度地图密钥的申请。后期在将其写到Android项目程序中才可以正常的访问地图。
在这里我们就完成了百度地图的注册环节。恭喜你,已经顺利打响了第一枪。接下来我将介绍下载SDK后如何添加到项目中,并成功显示出百度地图,让我们期待下期推文,不见不散。