手把手教你实现微信小程序定位

news2024/9/20 20:29:10

在这里插入图片描述

实现小程序的定位

框架:uniapp+vue
1,用户授权配置
在pages.json文件中配置

  "pages": [
     {
      "path": "pages/home/index",
      "style": {
        "navigationBarTitleText": "首页",
        "navigationBarBackgroundColor": "#6D84FC",
        "navigationBarTextStyle": "white"
      },
      "permission": {
        "scope.userLocation": {
          "desc": "你的位置信息将用于小程序位置接口的效果展示"
        }
      },
      "requiredPrivateInfos": [
        "getFuzzyLocation",
        "getLocation",
        "onLocationChange",
        "startLocationUpdateBackground",
        "chooseAddress"
      ]
    }]

2,代码实现

a = 'scope.userLocation'代表获取用户地理位置权限
isGetLocation(a = 'scope.userLocation') {
      //检查当前是否已经授权访问scope属性
      var _this = this;
      uni.getSetting({
        success(res) {
          console.log('!res.authSetting[a]', !res.authSetting[a]);
          if (!res.authSetting[a]) {
            //每次进入程序判断当前是否获得授权,如果没有就去获得授权,如果获得授权,就直接获取当前地理位置
            _this.getAuthorizeInfo();
          } else {
            // 直接获取当前地理位置
            _this.getLocationInfo();
          }
        }
      });
    }
    
    // 弹出获取授权(地理,个人微信信息等授权信息)弹窗
    getAuthorizeInfo(a = 'scope.userLocation') {
      var _this = this;
      uni.authorize({
        scope: a,
        success() {
          _this.getLocation();
        },
        fail(error) {
          //点击了拒绝授权后--就一直会进入失败回调函数--此时就可以在这里重新拉起授权窗口
          console.log('拒绝授权', error);
          uni.showModal({
            title: '提示',
            content: '若点击不授权,将无法使用位置功能',
            cancelText: '不授权',
            cancelColor: '#999',
            confirmText: '授权',
            confirmColor: '#f94218',
            success(res) {
              console.log(res);
              if (res.confirm) {
                // 选择弹框内授权
                uni.openSetting({
                  success(res) {
                    _this.isGetLocation();
                    console.log(res.authSetting);
                  }
                });
              } else if (res.cancel) {
                _this.$store.commit('changeCity', { city: '北京', province: '北京', address: '北京市' });
                // 选择弹框内 不授权
                uni.showToast({
                  title: '定位未授权某些功能会受到影响',
                  icon: 'error'
                });
              }
            }
          });
        }
      });
    },
    // 取当前地理位置(直接)
    getLocationInfo() {
      var _this = this;
      uni.getLocation({
        type: 'wgs84',
        success: function (res) {
          console.log('this', _this);
          _this.latitude = res.latitude;
          _this.longitude = res.longitude;
          _this.getLocationDetail();
          console.log('当前位置的经度:' + res.longitude);
          console.log('当前位置的纬度:' + res.latitude);
        }
      });
    },
    //获取当前所在位置的经纬度(授权获取)
    getLocation() {
      uni.getLocation({
        type: 'gcj02',
        success: res => {
          console.log(res);
          this.latitude = res.latitude.toString();
          this.longitude = res.longitude.toString();
          // 获取地理位置详情信息
          this.getLocationDetail();
        }
      });
    },
 //根据经纬度获取详细的地址
   getLocationDetail() {
    业务代码
  }

更多文章关注微信公众号IT工具庫

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123150.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

监控-zabbix

1运维监控 是指对计算机系统、网络、服务器等关键IT基础设施进行实时监控,以确保系统的稳定运行和及时发现潜在问题 2老监控框架(不会用但需要知道) Cacti: Cacti是一款基于PHP、MySQL开发的网络流量监测图形分析工具。主要监…

CSP-J算法基础 计数排序

文章目录 前言计数排序计数排序的过程总结 代码实现计数排序总结 前言 计数排序 计数排序(Counting Sort)是一种线性时间复杂度的排序算法,适用于范围有限的整数排序。它通过计数每个值出现的次数,依次排列这些值。该算法不通过比…

LVGL 控件之线条(lv_line)

目录 一、概述二、线条1、设置连接点2、自适应大小3、翻转 y 轴4、样式4.1 设置宽度4.2 末端形态 4.3 虚线5、API 函数 一、概述 线条部件只有一个组成部分:主体 LV_PART_MAIN。 通过一组点绘制出相连的直线,通过 lv_line_create 创建相应的对象。 二…

利用深度学习实现验证码识别-4-ResNet18+imagecaptcha

在当今的数字化世界中,验证码(CAPTCHA)是保护网站免受自动化攻击的重要工具。然而,对于用户来说,验证码有时可能会成为一种烦恼。为了解决这个问题,我们可以利用深度学习技术来自动识别验证码,从…

5.第二阶段x86游戏实战2-认识内存

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 本次游戏没法给 内容参考于:微尘网络安全 工具下载: 链接:https://pan.baidu.com/s/1rEEJnt85npn7N38Ai0_F2Q?pwd6tw3 提…

Cesium 展示——Cesium 初始化视角在中国并加载数据(china.json)

文章目录 需求一:初始化视角在中国分析需求二:加载中国数据(china.json)需求一:初始化视角在中国 在初始化 Cesium 的 Viewer 后,视角是在美国,如何让其视角指向中国 分析 viewer.value = new Cesium.Viewer(cesiumContainer.value, {homeButton

redis基本数据结构-string

文章目录 1. redis的string数据结构2. 常见的业务场景2.1 缓存功能案例讲解背景优势解决方案代码实现 2.2 计数器案例讲解背景优势解决方案代码实现 2.3 分布式锁案例讲解背景优势解决方案代码实现 2.4 限流案例讲解背景优势解决方案代码实现 2.5 共享session案例讲解背景优势解…

Docker突然解封,直接拉取!

文章目录 Docker突然解封,直接拉取!封禁的原因是什么?解封的原因是什么?封禁对开发的影响经验教训 最近开始公众号文章也开始同步更新了,对Java、大数据、人工智能、开发运维相关技术分享,文章对您有用的话…

Linux 8250串口控制器

1 8250串口类型的识别 Intel HW都使用DesignWare 8250: drivers/mfd/intel-lpss-pci.c drivers/tty/serial/8250/8250_dw.c IIR寄存器的高2位bit7、bit6用来识别8250串口的类型: 0 - 8250,无FIFO 0 - 并且存在SCR(Scratch registe…

SQL优化(二)统计信息

收集统计信息 数据库的统计信息非常重要,如果没有正确地收集表的统计信息,或者没有及时地更新表的统计信息,SQL就有可能走错执行计划,也就会出现性能问题。 统计信息主要分为表的统计信息、列的统计信息、索引的统计信息、系统的…

TeamTalk数据库代理服务器

文章目录 main函数主流程关键步骤线程池redis缓存未读消息计数未读消息计数-单聊未读消息计数-群聊 群成员管理 main函数主流程 关键步骤 初始化epoll 线程池数据入口 reactor CProxyConn::HandlePduBuf异步task任务封装,把任务放入线程池;线程池里的…

【AI学习】AI科普:专有名词介绍

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:AI入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1.AI序…

TCP通信三次握手、四次挥手

前言 前面我说到了,UDP通信的实现,但我们经常说UDP通信不可靠,是因为他只会接收和发送,并不会去验证对方收到没有,那么我们说TCP通信可靠,就是因为他会进行验证接收端是否能够接收和发送,并且只…

给大家推荐好用的AI网站

地址:https://ai.ashuiai.com/auth/register?inviteCode8E8DIC1QCR 个人觉得挺好用的,可以免费,免费有限制次数,也可以会员升级200永久免费,我用的200永久免费。 可以在国内使用以下ai模型 回答问题更智能&#xff…

计算机毕业设计 校内跑腿业务系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

分享6个我喜欢的常用网站,来看看有没有你感兴趣的!

分享6个我自己很喜欢的常用网站,平时工作生活中经常会打开,来看看有没有你感兴趣的! 1.Crazygames crazygames.com/ 一个超赞的在线小游戏平台,上面有超过7000种游戏任你选。不管你喜欢冒险、解谜、闯关,还是装扮、赛…

概要设计例题

答案:A 知识点: 概要设计 设计软件系统的总体结构:采用某种方法,将一个复杂的系统按照功能划分成模块;确定每个模块的功能;确定模块之间的调用关系;确定模块之间的接口,即模块之间…

返工(Rework)与返修(Repair)有何不一样

IATF 16949 汽车业质量管理体系,以客户需求为基础,组织透过相关单位了解客户需求后,向内部流程展开,目的是确保从研发到出货每个环节都能满足客户需求,同时管控制造过程的效率及良率,使产线能够稳定及准时交货给客户。 IATF 16949 条文中,针对「返工(Rework)」与「返修(…

linux工具的使用

1.yum和apt的概念与使用 yum 和 apt 是两种不同的包管理工具,用于在 Linux 系统上管理软件包。 yum (Yellowdog Updater, Modified) 发行版: 用于基于 RPM 的发行版,如 CentOS、RHEL 和 Fedora。基本命令: 更新包列表: sudo yum update安装包: sudo y…

Sky Takeaway

软件开发整体介绍 软件开发流程 角色分工 软件环境 苍穹外卖 项目介绍 定位:专门为餐饮企业定制的一款软件产品 技术选型 前端环境搭建 阅读readme文档 nginx.exe放入无中文目录运行并启动 后端环境搭建 项目结构 Nginx反向代理 优点 配置 Nginx反向代理 负…