获取用户位置并转化成真实描述文字
**解决问题: **
-
在小程序中获取用户的信息, 使用
wx.getLocation
API, 在使用这个 API 之前需要首先设置 用户授权. -
用户有可能在进入小程序的时候关闭了获取位置的权限, 当需要获取位置的时候要重新判断是否拥有权限。 如果没有权限需要再次提醒用户授权.
-
wx.getLocation
接口返回的用户位置是经纬度形式的, 需要借助于微信小程序JavaScript SDK
对返回的latitude
longitude
解析为国家 省份 市 ...
的形式。
设置用户授权
小程序中部分接口是需要用户授权同意后才能调用的。 像 getUserInfo
getLocation
chooseAddress
chooseInvoiceTitle
getWeRunData
等。 当我们在小程序中需要使用这些接口的时候,首先都要用户用户授权才能使用, 我们可以使用 wx.openSetting
打开设置界面,引导用户开启授权。
getLocation
除了需要用户授权外, 还需要在开发的时候在 app.json
配置 地理位置用途说明;
所以 第一步
我们需要在 app.json
文件中首先配置 地理位置用途说明
app.json
{
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
}
}
获取经纬度信息
第二步
在需要使用到 getLocation
接口的页面中的 xx.js
的 onLoad
方法中判断用户时候已经授权了 getLocation
的权限。
使用
wx.getSetting
获取所有已授权接口。 该接口会返回一个authSetting
对象, 里面包含了所有的授权结果。
success(res) {
console.log(res.authSetting)
// res.authSetting = {
// "scope.userInfo": true,
// "scope.userLocation": true
// }
}
})
所以我们可以在 onLoad
方法中使用 getSetting
方法判断用户是否授权了 userLocation
onLoad: