微信小程序开发中,经常需要获取用户的具体位置,而仅仅通过wx的API无法实现这个功能,通过wx.getLocation和腾讯的qqmap-wx-jssdk.js文件可以进行获取到具体到门牌号的地理位置,详细操作如下
- wx.getLocation是常用的微信API,可以获取用户的经纬度,使用很简单,如下图所示(来自官网),也可以看官网官网地址https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.getLocation.html
- qqmap-wx-jssdk.js可以将经纬度转换为具体的地址,可以定位到用户的门牌号,是一个超实用的功能,使用步骤如下
- 下载qqmap-wx-jssdk.js文件,地址如下:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview
- 下载qqmap-wx-jssdk.js文件,地址如下:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview
- 创建密钥,地址如下:https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/qqMapwx
- 点击进入界面如下,注意创建时候需要勾选WebserviceAPI才可以在微信小程序中使用,勾选后点击保存即可
- 点击进入界面如下,注意创建时候需要勾选WebserviceAPI才可以在微信小程序中使用,勾选后点击保存即可
注意,下面代码需要添加您的密钥,同时需要修改qmap-wx-jssdk.js的路径,还需要在data添加一个address的变量即可
// 获取用户所在地信息
// 使用腾讯地图
getAddress() {
// 注意,将that修改为this
let that=this;
// 在https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/jsSdkOverview地址下载qqmap-wx-jssdk.js文件
let Map = require('../../lib/qqmap-wx-jssdk.js');
// 在https://lbs.qq.com/miniProgram/jsSdk/jsSdkGuide/qqMapwx创建密钥
let map = new Map({
key: '您的密钥'
});
wx.getLocation({
type: 'wgs84',
success: function (res) {
// 将坐标发送到腾讯后台进行解析定位
map.reverseGeocoder({
location: {
latitude: res.latitude,
longitude: res.longitude
},
success: function (addressRes) {
let address = addressRes.result.address_component
that.setData({
address: {
province: address.province,//省
city: address.city,//市
district:address.district,//区
street:address.street,//街道
street_number:address.street_number//门牌号
}
})
console.log(that.data.address)
},
fail(err) {
console.log(err);
}
})
}
})
}
- 输出如下