uni-app中的getLocation()方法可以获取到用户当前的地理位置(经纬度)、速度。
但是返回参数中的address在app中才会显示,小程序中不会显示,所以我们需要进行逆解析其地址,解析出它的地址信息。
1.首先要在腾讯位置服务中"控制台>应用管理>我的应用"中添加应用并生成Key
注意填写的appid是你项目用的appid,如果是测试,则勾选域名白名单即可,如果是正式项目,则需要在文本框里填写具体,(可选项:勾选授权ip,并将你本机电脑的ip及测试环境和正式环境的域名ip填入其中,勾选serveiceApi,里面写入域名)
2.去小程序后台开发管理-开发工具-服务器域名配置添加(https://apis.map.qq.com),添加完成之后去重新编译一下小程序并去开发者工具项目配置中刷新,如果看到有这个域名了则代表添加成功了
3.到这一步前期的准备工作已经做完了,接下来就直接上代码按钮
cpp
getLocation() {
let that = this
uni.getLocation({
type: 'wgs84',
success: (res) => {
let location = res.latitude + ',' + res.longitude
//调用逆解析接口
uni.request({
url: 'https://apis.map.qq.com/ws/geocoder/v1/?location=location',//腾讯官方逆解析接口,可直接复制
data: {
location: location,
'key': "xxxx-xxxx-xxxx-xxxx-xxxx-xxxx",//自己申请的Key
},
method: "GET",
success(res) {
console.log(res,'解析成功返回的参数');
},
fail: res=> {
console.log(res.errMsg,'解析失败返回的错误信息');
}
})
//服务器域名的配置文件中"request合法域名"中需要添加调用的"https://apis.map.qq.com"
}
});
},
请求成功后会得到如下图所示的返回参数