• 【微信小程序】如何获得自己当前的定位呢?本文利用逆地址解析、uni-app带你实现


    目录

    前言

    效果展示

    一、在腾讯定位服务配置微信小程序JavaScript SDK

    二、使用uni-app获取定位的经纬度

    三、 逆地址解析,获取精确定位

    四、小提示


    前言

    效果展示

    一、在腾讯定位服务配置微信小程序JavaScript SDK

    在浏览器搜索腾讯定位服务,找到官方网站,利用微信或者其他账号注册登录,登录后如下图操作

    点进去之后,可以看到如下图红色框框的操作指导

    第一步和第二步主要是申请秘钥和配置服务,可以直击点击我的应用跳转、接下来如下图片所示操作 

    成功创建就会有如下图片的情况 

    点击添加Key,然后进行配置 

    配置成功,就会获得Key 

    第三步、下载微信小程序JavaScriptSDK v1.1   JavaScriptSDK v1.2 其中的一个即可,然后解压文件后,将其放入项目中,我这里放入在我的common组件中

     第四步可以忽略,第五步就是将文件引入,到你想要展现定位的页面,把申请的Key引入到onLoad生命周期中

    var QQMapWX = require('../../common/lib/qqmap-wx-jssdk.min.js');

    1. this.qqmapsdk = new QQMapWX({
    2. key: '3SUBZ-W5BCQ-FLM5G-GYOPG-D523V-DUFNH'
    3. });

     二、使用uni-app获取定位的经纬度

    在uni-app的API中找到位置

     将如下的代码放入mounted生命周期中获取经纬度

    1. uni.getLocation({
    2. type: 'wgs84',
    3. success: function (res) {
    4. console.log('当前位置的经度:' + res.longitude);
    5. console.log('当前位置的纬度:' + res.latitude);
    6. }
    7. });

     这里还需要在manifest.json中的源码视图中添加一段配置权限的代码

    1. "permission" : {
    2. "scope.userLocation" : {
    3. "desc" : "获取当前定位"
    4. }
    5. }

     

    三、 逆地址解析,获取精确定位

    调用qqmapsdk.reverseGeocoder的方法,在其中属性location中调用经纬度,这里要注意需要使用gcj02,还需要

    通过属性success, fail, complete的回调参数来接收调用结果success的回调参数可以有2个,第1个参数接收调用结果,第2个参数控制返回处理后的数据(非必须参数),示例:success:function(res,data)

     

     address是自己定义为空,来接收地址,req中有如下内容

     address只要获取到定位即可req.result.address

    1. mounted() {
    2. uni.getLocation({
    3. type: 'gcj02',
    4. highAccuracyExpireTime: 100,
    5. success: (res => {
    6. this.qqmapsdk.reverseGeocoder({
    7. location: {
    8. latitude: res.latitude,
    9. longitude: res.longitude
    10. },
    11. success:(req=>{
    12. this.address = req.result.address
    13. console.log(this.address);
    14. })
    15. })
    16. })
    17. });
    18. },

     最后在页面上渲染address即可

     代码段中highAccuracyExpireTime: 100,是高精度定位超时时间(ms),指定时间内返回最高精度,该值3000ms以上高精度定位才有效果,可以写也可以不写。

    四、小提示

    如果无法出现定位效果,需要降低调式基库的版本

    结束语:

    以上就是本次分享的全部内容,有任何问题,都可以私信我

  • 相关阅读:
    rhcsa-压缩和解压缩
    C# 中感叹号 (!) 的一些常见用法
    718. 最长重复子数组
    About Critical Values
    nginx升级
    InnoDB数据页结构(4)之页目录
    技术分享 | App常见bug解析
    BCC源码内容概览(3)
    Linux安全之SSL基础
    CSS伪类使用详解
  • 原文地址:https://blog.csdn.net/yzq0820/article/details/126920342