百度地图开发 - 搭建基础脚手架 01
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,可满足用户多场景的使用。
虽然说百度地图文档操作起来各种隐形的坑,但是如果新手想全方位认识了解百度地图还是需要从头开始仔细进行阅读,对后期业务开发很有帮助(毕竟是官方写的东西,有些技术点还是有罗列的)。

第一: 重点了解的主要是开发指南,里面对于地图的实现细节进行了阐述。
第二: 其次对于上面图片中的常见问题也要进行仔细阅读,你在按照教程学习时,遇到的 80%的 Bug 都能在常见问题栏找到对应的解决方法。
第三: 在示例中心,你可以下载到目前百度官方给的 Demo 代码,你可以根据你需要实现的业务来下载进行学习。
要想实现百度地图的嵌套使用,必须按照以下几个步骤来操作进行。
注册和申请密钥
其实注册百度账号,申请成为百度的开发者,后续在开发过程中,对于每一个需要使用百度地图的软件,都需要在百度地图中申请一个密钥,才可以正常的加载和访问。
下载特定 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 效果。

官方提示在此文件夹下执行下面代码,即可得到 SHA1 的值。
操作中的密码为原始密码一般为 android,开发者根据实际情况填写。

可以看到下面图片,是我得到的 SHA1 的值,其实这里得到的是开发版的值,可以写到上面开发版的位置处。

由于 Android Studio 的更新,目前我们发布软件时,得使用新的密钥或自己定义的,它的结尾是.jks 的,我们如果想生产发布时的 SHA1 值,那么得在 CMD 中定位到新密钥处,利用新密钥来生产 SHA1 值。

此时将发布版和开发版密钥,以及 PackageName 填写到上文需要填写的地方就顺利完成了百度地图密钥的申请。后期在将其写到 Android 项目程序中才可以正常的访问地图。
在这里我们就完成了百度地图的注册环节。恭喜你,已经顺利打响了第一枪。接下来我将介绍下载 SDK 后如何添加到项目中,并成功显示出百度地图,让我们期待下期推文,不见不散。
小寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看的见的。
原创不易,给个关注。
我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。
版权声明: 本文为 InfoQ 作者【Andy阿辉】的原创文章。
原文链接:【http://xie.infoq.cn/article/102fb3b5e866bb66e18353b6e】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论