1、实现打开一个地图页,用户可以自己选择位置,可以搜索联想位置,并获取选择后的位置信息和经纬度
2、腾讯key需要到腾讯地图开发者去注册申请,个人账号和企业的调用量有很大差别。
3、引入js文件,传一个事件处理的回调函数。用户未授权位置时会触发提醒开启位置授权模态框
var key = 'Xkkkkkkkkkkskdkktkkk'; //腾讯地图申请的key
export const getSiteMap = function(fn) {
// var that = this;
wx.authorize({
scope: 'scope.userLocation',
complete: function(res) {
console.log(res)
if (res.errMsg === "authorize:ok") {
chooseLocation(fn)
} else {
wx.showModal({
title: '提示',
content: '请授权获取您的位置信息',
showCancel: true,
confirmColor: '#26C451',
complete(res) {
console.log(res)
if (res.confirm) {
wx.openSetting({
complete(res) {
if (res.errMsg === "openSetting:ok") {
chooseLocation(fn)
}
}
})
}
}
})
}
}
})
}
function chooseLocation(fn) {
wx.chooseLocation({
success(str) {
console.log(str)
fn(str)
//发送请求通过经纬度反查地址信息
// var getAddressUrl = "https://apis.map.qq.com/ws/geocoder/v1/?location=" + str.latitude + "," + str.longitude + "&key=" + key + "&get_poi=1";
// wx.request({
// url: getAddressUrl,
// success(result) {
// console.log(result)
// var province = result.data.result.address_component.province;
// var city = result.data.result.address_component.city;
// var district = result.data.result.address_component.district;
// var address = result.data.result.formatted_addresses.recommend;
// console.log('省市县:' + province + city + district)
// console.log('地址:' + address)
// that.setData({
// "input[2].val": [province, city, district],
// "input[3].val": address
// })
// }
// })
}
})
}