仿摩拜单车APP(包括附近车辆、规划路径、行驶距离、行驶轨迹记录,导航等)

本文是由奇虎360公司高磊关于使用百度地图仿摩拜单车APP,原文地址:http://blog.csdn.net/gaolei1201/article/details/60876811

最近共享单车很火,动辄几亿美刀,屌丝的我只有羡慕的份。啥时候自己也能创一番事业呢?我眉头紧皱深深地思索着。个人认为LBS是移动互联网最主要的特征之一,自己以前没做过地图有关的项目,看到网上也没有完整有关地图的项目,就想起模仿一下摩拜单车app,我这个小项目包括附近车辆、规划路径、行驶距离、行驶轨迹记录、导航等(也挺全的哈);

需要注意:

0、其中的附近车辆用的是假数据,实际项目中你上传自己的经纬度然后服务器端会返回给你附近车辆列表显示出来就行。行驶轨迹记录都是保存在本地数据库,实际项目中你可以隔几秒上传一次踩点列表到服务器,防止APP被杀死或其它异常导致以前踩点消失

1、距离是取两个位置点的直线距离,DistanceUtil.getDistance(lastLatLng, currentLatLng)。然后把所有这些距离相加就是总距离,这是通常算法 2、实际项目中可定时你上传当前位置,然后服务器返回给你附近自行车数据,你展示一下就行。

3、行驶轨迹就是开启后台Service每隔几秒收集一次经纬度,到最后必须把所有经纬度上传到服务器,这样就算app被卸载,重新安装你还可以获取到行驶轨迹。有两种思路,一是边收集变上传到服务器或数据库,这样可以防止手机重启或App被杀死导致以前的数据消失,二是等结束进程时上传到服务器。

4、百度内置导航语音播报的问题:能正常导航,但是无法语音播报?

除了地图显示、定位、导航需要的配置之外,tts播报需要添加白名单,点击进入配置地址。

还有就是要分清提交时是debug版和release版的MD5,如果是测试版MD5那么发布版的语音还是没声音

发布版md5或sha获取方法:keytool -list -v -keystore /Users/gaolei/Work/CompanyProject/Bike/BiuBike/BiuBike/biubike.jks

测试版md5或sha获取方法:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android

百度地图开放平台注册不需要公司营业执照什么的,个人就能注册,地址:http://lbsyun.baidu.com。

首先建议大家吧百度地图API的demo下载下来研究一下,它包含我们用到的所有知识点,你再把资源整合一下就行了。SDK的Demo下载地址:http://lbsyun.baidu.com/sdk/download?selected=mapsdk_basicmap,mapsdk_searchfunction,mapsdk_lbscloudsearch,mapsdk_calculationtool,mapsdk_radar

运行效果图

遇到的大坑:

1、我的百度 key肯定是没错,在魅族4.4系统上正常,而在三星C7 和coopad 106(都是6.0系统)不能正常显示,而是一片蓝,获取不到当前位置?如图

解决方法:原因是我设置targetVersion>=23,那么运行到6.0及以上设备时,默认所有权限都不开启,必须动态requestPermission,这里需要位置权限,默认没开启导致此结果,把targetVersion=22就行,当targetVersion<23时,默认开启全部权限。

1.2、地图只显示网格不显示建筑

解决方法:百度开放平台时 debug md5没配置正确,不同电脑或环境 debug md5 不一样,如果用我的项目直接运行可能就会出现这种情况,因为你的电脑环境debug md5和我的电脑环境debug md5不一样。你可以打一个release包 因为release md5如果用同一个签名是不会变的。你也可以在百度地图开放平台自己注册账号配置信息

2、仿DrawerLayout的覆盖型侧滑菜单,研究了好久,可参考:http://blog.csdn.net/gaolei1201/article/details/50404941,https://github.com/gaoleiandroid1201/DrawerLayout

3、位置图标不跟着自己运动,查看自己代码也没有问题啊,调试了好久,跑了不少冤枉路,莫名其妙

解决方法:把百度sdk中的初始化地图和配置参数等代码拷进来代替,果然奏效

4、进程保活,这个不能完全保活,只能尽量保活,除非是被加入白名单或自启应用像微信,但是有些 app像行者和咕咚就算app被杀死了也能活下来,不清楚是怎么实现的,以后有需要在研究。还有就是AlarmManager当手机重启或app被杀死,它也会失效的

5、如果没有第三方导航APP,可以做百度地图内置导航,也耗费了不少时间。主要是官方Demo不能跑通,自带key验证不通过,还要自己研究

6、项目下载地址:https://github.com/gaoleiandroid1201/BiuBike

原文发布于微信公众号 - 何俊林(DriodDeveloper)

原文发表时间:2017-12-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯大数据的专栏

拿什么保护你---TDW数据安全

互联网时代,大数据扮演着极为重要的角色;腾讯作为中国最大社交平台,具备最具权威、代表性的互联网大数据。数据平台部TDW作为公司级的海量数据存储和计算平台,集中了...

25980
来自专栏编程一生

离线数据推送问题(消息队列)

15520
来自专栏java思维导图

电商中常见的高并发怎么处理?

在过去的工作中,我曾经面对过5w每秒的高并发秒杀功能,在这个过程中,整个Web系统遇到了很多的问题和挑战。如果Web系统不做针对性的优化,会轻而易举地陷入到异常...

50930
来自专栏张戈的专栏

妹子你真萌:一次心惊肉跳的服务器误删文件的恢复过程

刚在我的订阅里面看到这篇文章,在爆笑之余也让跟我一样的运维农民工们发人深省,所以转过来分享一下。妹子啊妹子,网上找的东西也不能直接照搬啊,太萌了~~哈哈! 作者...

653110
来自专栏花叔的专栏

解读小程序互跳功能,首对互相跳转的小程序发布!

花叔漏夜把新功能更新到接口人和Nodes小程序里了。现已发布,说不定这是最早上线的小程序互跳功能案例,请叫我快男花。 先说说昨晚发生了什么: 话说,昨晚11点做...

449120
来自专栏FreeBuf

Pegasus间谍套件内部原理及流程剖析

事件介绍 这篇报道是关于最近发生的在全球范围内活跃的APT间谍软件的深度研究,Lookup团队已经捕获了样本,并且在一台全新的iOS设备上进行了深度研究。 NS...

39790
来自专栏liulun

基于.net开发chrome核心浏览器【一】

说明: 这是本系列的第一篇文章,我会尽快发后续的文章。 源起   1.加快葬送IE6浏览器的进程     世界上使用IE6浏览器最多的地方在中国     中国...

30550
来自专栏镁客网

果粉们有福啦,iphone也能接高速优盘了呢

16630
来自专栏FreeBuf

低成本安全硬件实战遇到的那些事

世界属于终端 世界属于Linux 世界属于算法 楔子 今年二月份,通过@ya0guang大神的文章我初步接触到了安全硬件低成本调教的姿势,我将跟随ya0guan...

24390
来自专栏BIT泽清

这些年iOS AppStore 套壳开发上架从棋牌类到彩票类在到如今的金融原油期货类App过程

下面给大家讲讲作者我“ios开发子”这些年iOS AppStore 套壳开发上架过程-从棋牌类到彩票类在到如今的金融原油期货类App-过程中所遇到的一些开发问题...

1.4K30

扫码关注云+社区

领取腾讯云代金券