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 最新技术资讯~
|