【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),防止清除過程中重新聚合。

了解更多詳情>>

訪問華為開發者聯盟官網
獲取開發指導文檔
華為移動服務開源倉庫地址:GitHubGitee

關注我們,第一時間了解 HMS Core 最新技術資訊~