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相關的字段,所以這種坑,想要找到解決方法并不簡單。我判斷可能是由于地圖和定位是兩個團隊開發?所以里面肯定在某些方面有些沖突不兼容的現象,我們在初始化先關閉指南針,定位以后重新打開就可以正常啦,如果有小伙伴也遇到這個問題,可以嘗試一下這個解決方案。
總結
以上是生活随笔為你收集整理的Android开发百度地图指南针消失问题的全部內容,希望文章能夠幫你解決所遇到的問題。