【FAQ】接入HMS Core地圖服務過程中常見問題總結
- 2022 年 4 月 25 日
- 筆記
HMS Core地圖服務(Map Kit)給開發者提供一套地圖開發調用的SDK,助力全球開發者實現個性化地圖呈現與交互,方便輕鬆地在應用中集成地圖相關的功能,全方位提升用戶體驗。
在日常工作中,我們會收到很多開發者們留言集成地圖服務中遇到的問題,這裡我們將典型問題進行分享和總結,希望為其他遇到類似問題的開發者提供參考
1.應用集成地圖服務後,地圖加載不出來(顯示網格地圖/只有部分地圖)如何解決?
(1)檢查是否未打開Map Kit開關或是證書指紋配置有誤,可參考Codelab
(2)請檢查HMS版本是否是4.0.0及以上。SDK版本為6.X時 HMS core(apk)的版本需要升級至6.X
(3)項目中App ID與AppGallery Connect上是否一致。
(4)未配置指紋SHA256。需在本地生成簽名證書指紋,然後在AppGallery Connect中配置。
(5)未配置應用的AppGallery Connect配置文件,將「agconnect-services.json」文件拷貝到應用級根目錄下。
(6)在android中配置簽名。將生成簽名證書生成的簽名文件複製到工程的「app」目錄下,並在「build.gradle」文件中配置簽名。
2.如何通過地圖服務獲取自己實時位置?
(1)可以啟用我的位置()添加標記
hMap.setMyLocationEnabled(true);
hMap.getUiSettings().setMyLocationButtonEnabled(true);
具體使用細節參考文檔
(2)getPosition()獲取標記當前位置()
具體使用細節參考文檔
3.地圖加載後,水印、指南針、我的位置、縮放按鈕等控件不顯示,只顯示地圖。是什麼原因?
(1)檢查zOrderOnTop屬性的設置。zOrderOnTop(true):表示地圖展示在最頂層,會覆蓋其他控件。zOrderOnTop(false):表示地圖不展示在最頂層,其他控件可以正常顯示。
(2)設置縮放zoomControlsEnabled,指南針compassEnabled,我的位置setMyLocationEnabled等屬性為true.
具體細節參考網站說明
4.集成地圖服務後,我的位置功能不起作用是什麼原因?
(1)請檢查是否開啟了android.permission.ACCESS_FINE_LOCATION和android.permission.ACCESS_COARSE_LOCATION權限。(包括動態權限申請,位置開關是否開啟)
(2)檢查是否開啟了如下兩個開關:
//啟用位置圖層
map.setMyLocationEnabled(true);
//啟用我的位置按鈕
map.getUiSettings().setMyLocationButtonEnabled(true);
5. 集成地圖服務後,當添加2000個markers時,應用會出現卡頓的現象?
在調用map.clear()時清除Marker時,如果又有添加Marker的操作,會導致重新聚合,效率低下;
可在調用map.clear()時,在後面加一行代碼map.setMarkersClustering(false),防止清除過程中重新聚合。
了解更多詳情>>
訪問華為開發者聯盟官網
獲取開發指導文檔
華為移動服務開源倉庫地址:GitHub、Gitee
關注我們,第一時間了解 HMS Core 最新技術資訊~