问题:微信小程序提供的只有获取到经纬度的接口没有直接获取城市的接口
思路
1.通过小程序获取经纬度
2.通过经纬度,换取城市信息
小程序获取经纬度
wx.getLocation({
type: 'wgs84',
success: res => {
const {
latitude,
longitude
} = res
console.log(latitude,longitude)
},
fail: res => {
// console.log('您已经拒绝获取定位,需要打开设置')
wx.showModal({
title: '警告',
content: '如果不授权获取您的定位,将无法为您展示你当前位置天气详情.',
confirmText: '去授权',
showCancel: false,
success: res => {
if (res.confirm) {
wx.openSetting({
success: res => {
this.getLoaction()
}
})
}
}
})
}
备注:改代码包含如果用户拒绝授权,将打开设置
经纬度获取城市
通过腾讯地图开发sdk,进行转换
腾讯地图,微信小程序 需要申请key值http://lbs.qq.com/qqmap_wx_jssdk/index.html
遇到的坑的地方
1.应用类型 在这个位置授权的域名地方出现了点问题,如果是在程序的内部放置的有qqmap-wx-jssdk.js文件,
授权框内不需要填写任何域名(这个必须这个样子)
代码:
// 参数格式
let params = {
latitude: latitude,
ongitude: longitude
}
// 根据经纬获取城市名称
getAddressName: function(params) {
var QQMapWX = require('../../libs/qqmap-wx-jssdk.min.js');
var qqmapsdk = new QQMapWX({
key: 'KYOBZ-T4VK6-*****-*****-*****-*****' //你自己的key
});
qqmapsdk.reverseGeocoder({
location: params,
success: res => {
let address = res.result.address_component;
console.log(address)
}
});
},