持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第1天,点击查看活动详情
最基本的分析
首先分析三部分:
key值是否申请
api调用是否正确
调用失败的错误码
正常来说,很多人用uniapp开发的时候,用的都是uni的方法,其实还是要做兼容微信的方法
uni.getLocation({
type: 'wgs84',
success: function (res) {
//这里去调用坐标转城市的高德API
let location = '&location=' + res.longitude + ',' + res.latitude;
that.$util.getLocationInfo(location).then(resolve => {
let data = {
adcode: resolve[0].regeocodeData.addressComponent.adcode
};
convert(data).then(res => {
//that.formData.getMerchantACInformation.bankAddr = res.data.name + res.data.districts[0].name + res.data.districts[0].districts[0].name;
that.formData.getMerchantACInformation.bankAddr = res.data.name + res.data.districts[0].name;
that.formData.getMerchantACInformation.cityNo = res.data.districts[0].code;
});
// console.log(resolve.data.regeocode.addressComponent.adcode, '结果');
});
},
fail: function () {
uni.showToast({
title: '获取地址失败,请开启位置权限',
icon: 'none'
});
}
获取到经纬度之后调用高德api
// 获取高德逆地理编码
method.getLocationInfo = (location) => {
// 高德地图API,经纬度转位置信息
const key = '598eafad8cd0fe064e9ff340d6ce9cde'; //高德key秘钥,这里去高德申请一个就可以,其他都一样
let reqUrl = 'https://restapi.amap.com/v3/geocode/regeo?key=' + key + location;
return new Promise((resolve, reject) => {
let amapPlugin = new amap.AMapWX({
key:key
});
amapPlugin.getRegeo({
success: data => {
resolve(data);
},
fail: err => {
resolve(err);
}
});
});
}
然后封装的方法,这里的key一定要选择勾选小程序的,不然就会失效