百度地图开发-搭建基础脚手架 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代码,你可以根据你需要实现的业务来下载进行学习。
这个教程后面我会将代码上传到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效果。
官方提示在此文件夹下执行下面代码,即可得到SHA1的值。
keytool -list -v -keystore ~/.android/debug.keystore -alias android debugkey
操作中的密码为原始密码一般为android,开发者根据实际情况填写。
可以看到下面图片,是我得到的SHA1的值,其实这里得到的是开发版的值,可以写到上面开发版的位置处。
由于Android Studio的更新,目前我们发布软件时,得使用新的密钥或自己定义的,它的结尾是.jks的,我们如果想生产发布时的SHA1值,那么得在CMD中定位到新密钥处,利用新密钥来生产SHA1值。
此时将发布版和开发版密钥,以及PackageName填写到上文需要填写的地方就顺利完成了百度地图密钥的申请。后期在将其写到Android项目程序中才可以正常的访问地图。
在这里我们就完成了百度地图的注册环节。恭喜你,已经顺利打响了第一枪。接下来我将介绍下载SDK后如何添加到项目中,并成功显示出百度地图,让我们期待下期推文,不见不散。
小寄语
人生短暂,我不想去追求自己看不见的,我只想抓住我能看的见的。
原创不易,给个关注。
我是阿辉,感谢您的阅读,如果对你有帮助,麻烦点赞、转发 谢谢。
百度地图开发-搭建基础脚手架 01相关推荐
- Android学习 - 百度地图开发基础
什么是百度地图API? 百度地图移动版API(Android)是一套基于Android 1.5及以上设备的应用程序接口,通过该接口,您可以轻松访问百度服务和数据,构建功能丰富.交互性强的地图应用程序. ...
- 百度地图开发技术方案及解决办法
技术方案及解决办法 文章目录 技术方案及解决办法 总体方案 基础框架 前端网页 后端程序 结合搭建方法 跨域解决 python处理excel 问题描述 解决办法 网页结构 vue实例 内容引入 ele ...
- Android studio 百度地图开发(5)查询周边服务(加油站)
Android studio 百度地图开发(5)查询周边服务(加油站) email:chentravelling@163.com 开发环境:win7 64位,Android Studio,请注意是An ...
- Android 百度地图开发(二)
前面我们一起了解了百度地图的申请与集成Android 百度地图开发(一),今天我们接着来学习百度地图. 今天主要来了解如下问题: 1.百度地图的生命周期控制 上一篇张我们已经在布局文件里增加了mapV ...
- 百度地图开发之——百度地图鹰眼轨迹管理台DEMO-v3部署到服务器上
百度地图开发官方下载口:https://github.com/baidu-openmap-trace/web-demo-v3 第一:部署准备 搭建NPM和FIS3的环境 1.安装node.js:htt ...
- 使用QT嵌入百度地图开发高B格岸基监控软件
文章目录 1.简述 2.百度地图 2.1百度地图准备 2.2 百度地图开发 2.2.1实时绘制轨迹 2.2.2设定航点 3 QT软件开发 3.1使用QWebEngineView显示Html 3.2 M ...
- 百度地图开发(二)之添加覆盖物 地理编码和反地理编码
转载请注明出处: http://blog.csdn.net/crazy1235/article/details/43377545 之前写过一篇关于百度地图开发的blog,主要介绍了百度地图的基本地图的 ...
- 用android studio测量距离,Android studio 百度地图开发(6)Marker绑定事件、计算两点距离...
Android studio 百度地图开发(6)Marker绑定事件.计算两点距离 email:chentravelling@163.com 开发环境:win7 64位,Android Studio, ...
- 基于Android的百度地图开发
参考资料: android studio获得SHA1的值,然后在百度地图移动版API官网申请key Android Studio怎么查看程序的安全码获取SHA1值? http://www.codese ...
最新文章
- Java项目:学生考勤管理系统(java+SSM+Poi导出+Easyui+JFreeChart+maven+mysql)
- Linux查看dmesg日志,Linux中的Printk与dmesg功能
- CentOS 6.3 运维监控之Cacti 监控主机系统(二)
- Android 小知识
- spring-security的初步应用
- c# 读取写入excel单元格基本操作
- Editplus For Python[转]
- Activiti 多个并发子流程的应用
- (19)FPGA脉冲计数器设计(第4天)
- springboot 文件服务器_spring boot还不了解?一份spring boot实战文档送给你
- 用Layer.search快速查询图元
- 转载 关于git的常用命令总结
- Atitit.excel导出 功能解决方案 php java C#.net版总集合.doc
- Python连接SQLite
- 国际贸易结算-信用证流程图
- 「环卫吸粪车」天河区抽化粪池抽泥浆抽污水来了,解决黑臭水体!
- 电脑怎样设置桌面待办,桌面待办事项软件
- 干货,实战滴滴开源Logi-KafkaManager
- 服务器上mysql授权命令_MySQL授权命令grant的使用方法
- SP706看门狗使用记录
热门文章
- 微信扫码登录验证PHP代码(不用开放平台)
- 点击苹果手机计算机页面慢,苹果手机运行速度慢解决办法 运行速度慢怎么办...
- 几何的显式表示 - 曲线和曲面
- java对接第三方接口
- 网页响应时间测试标准是什么?
- leetcode数据库题库-178. 分数排名
- AVL树的插入与删除(详解)
- 广告传媒公司那些看得到管不了的事
- matlab贝叶斯判别后验概率,统计学习方法——朴素贝叶斯法、先验概率、后验概率(示例代码)...
- codeMirror 学习 重置编辑器 代码对比 一行格式化