Android开发百度地图指南针消失问题

        发现最近接手的项目跟百度地图干上了,从2014年的V3.xx版本到现在的最新版,踩了不知道没踩过的多少坑。今天在维护一个2014年的老项目的时候,反馈有一条“指南针不显示,旋转后无法复位”。好吧,由于是老项目,第一个我们考虑的应该是版本问题了。

        为什么说要先考虑版本问题呢,因为百度坑啊,百度版本不兼容啊 吧啦吧啦的。。(我这样一直黑百度会不会被百度拉黑呢,我还一直想进大厂呢,哭瞎)。


旧版本的jar包

废话不多说,我把项目拉出来,换上了最新的jar包们,run走起。不出所料果然没反应,有反应我还写这篇文章干啥。

这里换上了新版本jar包

        于是在我做过的N个项目里,我又扒出一个正常显示指南针的码田,一行行看了下去,emmmm,去你的看不下去。于是我又产生了一个新的想法,emmmm我TM脑洞还是足够大:会不会是自定义图层层叠导致的遮盖呢?你别说,这玩意想起来还真有点道理。毕竟APP第一次安装后,打开页面是有指南针的,后面退出这个activity以后,再也不会显示了。我想肯定是我经过了各种操作本地缓存了啥或者XXX的,一通什么操作才导致的不显示指南针。对没错肯定是我的问题。QAQ


百度官方文档关于图层层叠解释

        于是我抽丝剥茧,把整个activity所有方法都注释了以后:


只保留了百度地图初始化的一些操作

        果不其然,还是不行。难道是我注释的不够干净??也不是不可能嘛,人总是要怀疑下自己。这时候根据以往的经验,我意识到了事情有点不对。怎么我以前写的就行呢!这TM不会是玄学问题吧?

        新拉出来一个页面,一个个测试。网上关于这些问题说的最多的解决方案也是唯一的解决方案就是:


百度官方文档对于指南针开关的方法

首先,这个是默认开启的,不需要我们手动开启(很人性化QAQ)。那么为什么还是没显示出来呢?我是不指望看百度源码了


一堆abcdefg

那么,会不会和定位有关系呢?毕竟我之前的项目都是和定位相关。emmm不知道是我没找到还是咋的,百度官方在定位的文档斌没有提到指南针问题。毕竟这不是导航,没有指南针也是无可厚非嘛。


定位初始化的n段代码

在尝试了N种搭配以后,通过不断打印mBaiduMap.getUiSettings().isCompassEnabled()以后,我发现的确,默认指南针都是开启的,那么我就先把它关掉试试:


在初始化的时候关掉指南针

这时候依旧没有出现指南针,那么我们就多次尝试嘛:在定位后会不会有骚操作呢?于是我在定位后又写了一遍这个代码果不其然,并没有任何效果。那么我们再打开试试呢?


我们可爱的指南针又回来啦

        诶?真的是骚操作诶,靠腰哦。

注意一点,定位的最后一句,mLocClient.start();不可以去掉,亲测。

总结一句:查阅了之前的代码也是地图和定位相结合,但是并没有发现与setCompassEnabled相关的字段,所以这种坑,想要找到解决方法并不简单。我判断可能是由于地图和定位是两个团队开发?所以里面肯定在某些方面有些冲突不兼容的现象,我们在初始化先关闭指南针,定位以后重新打开就可以正常啦,如果有小伙伴也遇到这个问题,可以尝试一下这个解决方案。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,218评论 25 709
  • 各位小伙伴们大家好,今天我向大家介绍一下苹果百度地图的使用方法,因为做过一些想关的APP,感觉百度地图还是挺方便的...
    Lee0528阅读 14,972评论 18 46
  • 倘若时光倒流 我想 我还会选择认知你 因为是你 我还是我 在不确定的明天 我憧憬着未来 可现实告诉我 要理智 也是...
    霍羌塘布姆阅读 1,882评论 0 0
  • 昨天早上遇见婆婆,问了一下事情的经过,虽然老公已经告诉了我,我知道她心里苦。婆婆顿时像个孩子一样,眼泪瞬间在眼眶里...
    邹艳丽阅读 1,670评论 0 0
  • 今天发现定的时间不符合实际,于是立刻将计划完善: ①午饭后13点到13点半看书。 ②13点半到两点练字。 ③14点...
    承思而行阅读 1,621评论 0 0

友情链接更多精彩内容