uniapp 中APP端调用uni.getLocation偶尔获取不到address解决方法 |
您所在的位置:网站首页 › 阿迪达斯app添加不了地址信息 › uniapp 中APP端调用uni.getLocation偶尔获取不到address解决方法 |
uniapp 中APP端调用uni.getLocation偶尔获取不到address解决方法
1.配置geocode为true
uni.getLocation({
type: 'wgs84',
geocode:true,//设置该参数为true可直接获取经纬度及城市信息
success: function (res) {
console.log('获取定位信息',res);
},
fail: function (err) {
console.log("获取定位失败",err);
uni.showToast({
title: '获取定位失败',
icon:'none'
});
}
});
一般情况下,此时可以获取从res.address中获取地址信息,详情 [参考文档]: https://uniapp.dcloud.io/api/location/location?id=getlocation 此时未报错,只能获取到经纬度信息,返回信息如下: { "type": "wgs84", "altitude": 0, "latitude": 34.806316, "longitude": 113.685944, "speed": 0, "accuracy": 40, "errMsg": "getLocation:ok" }如果出现这种情况,可以使用plus.maps.Map.reverseGeocode方法获取address信息: [参考文档]: https://www.html5plus.org/doc/zh_cn/maps.html#plus.maps.Map.reverseGeocode // #ifdef APP uni.getLocation({ type: 'wgs84', geocode:true,//设置该参数为true可直接获取经纬度及城市信息 success: function (res) { console.log('获取定位信息',res); // 创建地图坐标对象 var point = new plus.maps.Point(res.longitude, res.latitude); //静态方法,反向地理编码 plus.maps.Map.reverseGeocode(point, {},(event)=>{ var address = event.address; // 转换后的地理位置 var point = event.coord; // 转换后的坐标信息 var coordType = event.coordType; // 转换后的坐标系类型 var reg = /.+?(省|市|自治区|自治州|县|区)/g; var addressList = address.match(reg).toString().split(","); //注意 因为存在直辖市, 当所在地区为普通省市时,addressList.length == 3,city = addressList[1];当所在地区为直辖市时addressList.length == 2,city = addressList[0]; let city = addressList.length == 3?addressList[1]:addressList[0]; console.log("addressList",addressList); }, function(e) { console.log("失败回调",e); } ); }, fail: function (err) { console.log("获取定位失败",err); uni.showToast({ title: '获取定位失败', icon:'none' }); } }); // #endif//注意 因为存在直辖市, 当所在地区为普通省市时,addressList.length == 3,city = addressList[1];当所在地区为直辖市时addressList.length == 2,city = addressList[0]; 获取到的信息在addressList里边,如下: 普通省市:["河南省", "郑州市", "金水区"] 直辖市:["上海市", "浦东新区"] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |