官网提示小程序使用uni.getLocation(OBJECT) 不能直接获取到详细的中文描述,需要下载第三方的SDK包。我使用的是腾讯
首先需要在腾讯地图API中注册key,
申请KEY:
在项目中创建一个文件夹,将下载的SDK放到文件夹中。
因为我使用 import from 进行引入的。 所以SDK需要小小的改动一下。
设置uniapp的配置文件:
在文件中引入:
datafo.qqmapsdk 通过 reactive 声明的变量保存new QQMapWX的实例
onLoad(() => {
positionLog()
})
async function positionLog() {
const location = await getLocationInfo();
console.log(location,"当前位置信息");
}
//获取位置信息
async function getLocationInfo() {
return new Promise((resolve) => {
//位置信息默认数据
let location = {
longitude: 0,
latitude: 0,
province: "",
city: "",
area: "",
street: "",
address: "",
};
uni.getLocation({
type: "gcj02",
success(res) {
location.longitude = res.longitude;
location.latitude = res.latitude;
// 腾讯地图Api
datafo.qqmapsdk = new QQMapWX({
key: '' //这里填写自己申请的key
});
datafo.qqmapsdk.reverseGeocoder({
location,
success(response) {
let info = response.result;
console.log(info);
location.province = info.address_component.province;
location.city = info.address_component.city;
location.area = info.address_component.district;
location.street = info.address_component.street;
location.address = info.address;
resolve(location);
},
});
},
fail(err) {
console.log(err)
},
});
});
}