【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit(6)
1.问题描述:
使用华为内置的MapComponent, 发现显示不出来。查看日志, MapRender底层有报错。
解决方案:
麻烦按以下步骤检查下地图服务,特别是签名证书指纹那部分。
1.一般没有展示地图,可能和没有配置SHA256指纹证书配置,网络,定位权限,没有打开地图服务等有关系,如果刚配置完权限等,需要24h生效,(可以将手机系统时间往后设置24h)。
2.module.json5文件中 metadata节点下 clientid 写正确—需要在里面直接写client_id的信息,不能通过$符引用资源文件中的值,当前无法解析这种引用方式;
3.需要开发者检查一下当前的签名证书指纹是否也是自动签名的,需要改成手动签名且需要和AGC上配置的证书指纹一致
签名证书使用 这个选项中的 配置方式 “选择SHA256公钥指纹‘’
a、生成配置指纹:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/push-preparations-0000001727885250#section388942317518
b、配置证书指纹:https://developer.huawei.com/consumer/cn/doc/app/agc-help-signature-info-0000001628566748#section5181019153511
可以重点检查一下 clientid 以及 AGC平台配置的证书指纹是否是手动生成, 打包时使用的证书是否与AGC平台上配置的一致;
2.问题描述:
区划选择提示map权限 ,但在appGallery网页中已经开启了map权限,还需要什么权限?
解决方案:
如果已经开通了权限,可能有缓存,需要通过USB接口连接测试设备,按照以下步骤操作配置并清下缓存:
1、清除鉴权 缓存
hdc shell rm -rf /data/service/el1/public/cloud_interface_auth/scopecache/*
2、终止鉴权进程
hdc shell
ps -ef | grep auth,获取cloud_interface_auth 的PID如34639
kill -9 34639,将SA进程停止以清理缓存。
3、清除demo和mapservice缓存数据然后开始测试
hdc shell bm clean -n 应用包名(如com.huawei.maps.demoA) -d
hdc shell bm clean -n 应用包名(如com.huawei.maps.demoA) -c
hdc shell bm clean -n com.huawei.hms.mapservice -d
hdc shell bm clean -n com.huawei.hms.mapservice -c
3.问题描述:
js地图设置语言为中文,导航返回的还是英文
解决方案:
js语言设置mapOptions的fmapOptions.language=‘CHI’;中language为小写;中文简体值是:CHI
参考链接:https://developer.huawei.com/consumer/cn/doc/HMSCore-References/js-hwmap-0000001050990165#section12313153115171
4.问题描述:
如何拉起地图类应用,可以让用户选择花瓣地图或者高德地图等并传入当前位置和目的地位置的经纬度进行导航?
解决方案:
开发者好,可通过Want拉起Petal 地图应用
详细可参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/map-petalmaps-V5#section116043716599
拉起高德地图可参考https://developer.huawei.com/consumer/cn/doc/sdk-gallery-guides/eco-sdk-map-gaode-ditu-0000001787589728
5.问题描述:
调用sceneMap.queryLocation方法报无权限,可是后台配置已勾选,地图无法显示
解决方案:
此错误码代表1002600004 三方应用没有开通地图服务权限,建议排查以下原因:
1、https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/map-config-agc-V5是否已开通地图服务
2、检查一下 module.json5中的 client_id与AppGallery Connect中的client_id是否一致。如果一致的话可以将手机往后调24小时再试一下
3、是否是手动签名:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/application-dev-overview-V5
4、配置client_id的value时,不能通过resource中的值配置(例如$media.icon),请直接写入client_id的值。如:“value”: “109920437”
6.问题描述:
Map如何在屏幕上全部显示出来所有的Marker点?
解决方案:
可以添加多个Marker,使用MapComponentController.addMarker接口,返回添加的marker实例 https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/map-map-V5#section0810361284
显示多个marker可以参考
marker自定义信息窗,请参考链接https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/map-marker-V5