uni-app uni.getLocation自定义基座腾讯地图模拟器取不到address字段
uni-app uni.getLocation自定义基座腾讯地图模拟器取不到address字段
示例代码:
uni.getLocation({
type: "gcj02",
geocode: true,
success: function(res) {
console.log(res);
},
fail: function(res) {
uni.showToast({
title: '位置获取失败',
icon: 'error',
duration: 3000
});
},
complete(e) {
console.log(e);
}
})
操作步骤:
有腾讯地图商业授权,且manifest.json文件中APP模块定位跟地图以及web定位和地图都配置了腾讯地图的key,并打包新自定义基座后运行以上代码示例模拟器没有address字段,真机address字段为字符串
预期结果:
{
"type": "gcj02",
"altitude": 0,
"latitude": 39.916296,
"longitude": 116.410344,
"speed": 0,
"accuracy": 550,
"address": {
"country": "中国",
"province": "北京市",
"city": "北京市",
"district": "东城区",
"street": "锡拉胡同",
"streetNum": "111号",
"poiName": "金鱼胡同(地铁站)",
"cityCode": "010"
},
"errMsg": "getLocation:ok"
}
实际结果:
自定义基座模拟器结果:
{
"longitude": 116.410249,
"speed": 0,
"latitude": 39.916411,
"altitude": 0,
"accuracy": 1,
"verticalAccuracy": 0,
"horizontalAccuracy": 1
}
自定义基座真机结果:
{
"longitude": 114.275056,
"speed": 0,
"horizontalAccuracy": 20,
"latitude": 30.673953,
"altitude": 0,
"accuracy": 20,
"verticalAccuracy": 0,
"address": "湖北省武汉市东西湖区宏图路与金潭路交叉口西南角"
}
bug描述:
使用第三方腾讯地图,uni.getLocation获取位置,标准基座正常,自定义基座取不到address字段,也不执行complete回调,真机取到的address字段是一个字符串,不是文档描述的对象,也不执行complete回调
更多关于uni-app uni.getLocation自定义基座腾讯地图模拟器取不到address字段的实战教程也可以访问 https://www.itying.com/category-93-b0.html
1 回复
更多关于uni-app uni.getLocation自定义基座腾讯地图模拟器取不到address字段的实战教程也可以访问 https://www.itying.com/category-93-b0.html
这是腾讯地图SDK在自定义基座下的兼容性问题。模拟器无法返回address字段是因为腾讯地图模拟器环境不支持逆地理编码功能,这是正常现象。
真机返回字符串而非对象的问题,需要检查以下配置:
- 确保manifest.json中正确配置了腾讯地图key:
"geolocation": {
"type": "gcj02",
"provider": "tencent"
},
"maps": {
"tencent": {
"key": "您的腾讯地图key"
}
}
-
自定义基座打包时,确认选择了正确的模块配置,特别是"Maps"和"Geolocation"模块。
-
尝试在uni.getLocation调用前先初始化地图服务:
uni.requireNativePlugin('tencent-map')

