小程序获取用户位置并转化成真实描述文字

本文介绍了在微信小程序中获取用户位置信息的步骤,包括设置用户授权、调用API获取经纬度以及如何将经纬度转化为实际地址的详细过程。在获取位置前,需要检查用户授权,并在app.json中配置地理位置用途。当获取到经纬度后,利用微信小程序JavaScript SDK的reverseGeocoder方法将位置信息转换为可读的地址。


**解决问题: **

  1. 在小程序中获取用户的信息, 使用 wx.getLocation API, 在使用这个 API 之前需要首先设置 用户授权.

  2. 用户有可能在进入小程序的时候关闭了获取位置的权限, 当需要获取位置的时候要重新判断是否拥有权限。 如果没有权限需要再次提醒用户授权.

  3. 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.jsonLoad 方法中判断用户时候已经授权了 getLocation 的权限。

使用 wx.getSetting 获取所有已授权接口。 该接口会返回一个 authSetting 对象, 里面包含了所有的授权结果。

 success(res) {
   console.log(res.authSetting)
   // res.authSetting = {
   //   "scope.userInfo": true,
   //   "scope.userLocation": true
   // }
 }
})

所以我们可以在 onLoad 方法中使用 getSetting 方法判断用户是否授权了 userLocation

onLoad: 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值