最近在做小程序打卡功能的时候需要用到获取当前定位+经纬度转换成地址,腾讯位置服务提供了相关API,我们可以去调用其API实现我们想要的功能。
一、注册应用及key
1.登录腾讯位置服务网址(微信小程序JavaScript SDK | 腾讯位置服务)
可以查看到小程序的
2.创建应用,申请key
3.下载需要的小程序javaScriptSDK(上面网站上有下载链接);
4. 在小程序管理后台 ->开发管理->接口设置->申请地理位置API(wx.getLocation)
5.安全域名设置,在小程序管理后台 -> 开发 -> 开发管理 -> 开发设置 -> “服务器域名” 中设置request合法域名,添加https://apis.map.qq.com
二、封装及调用
1.封装
(1)在utils文件夹内创建getLocationInfo.js文件
(2)引入SDK(上面下载的)及key,key不方便展示,然后再调用
const QQMapWX = require('@/utils/wx_js/qqmap-wx-jssdk.min.js');
const qqmapsdk = new QQMapWX({
key: 腾讯位置服务应用key,
})
function getLocationInfo(location) {
return new Promise((resolve, reject) => {
qqmapsdk.reverseGeocoder({
location: {
latitude: location.latitude,
longitude: location.longitude
},
success: function (res) {
resolve(res.result)
},
fail: function (err) {
console.log(res);
reject(err)
}
})
})
}
export default getLocationInfo
2.调用
import getLocationInfo from "@/utils/wx_js/getLocation.js";
wx.getLocation({
type: 'gcj02',
success:async(res) =>{
const latitude = res.latitude;
const longitude = res.longitude;
let result = await getLocationInfo(res);
console.log("address", result);
this.setData({
address: result.address,
markers: [{latitude,longitude}],
latitude,
longitude
})
},
fail(error) {
console.log(error);
}
})
3.实现效果
打印结果和地图组件