微信小程序通过startLocationUpdate,onLocationChange获取当前地理位置信息,配合腾讯地图解析获取到地址
先创建个getLocation.js文件
//获取用户当前所在的位置
const getLocation = () => {return new Promise((resolve, reject) => {let _locationChangeFn = (res) => {resolve(res) // 回传地里位置信息wx.offLocationChange(_locationChangeFn) // 关闭实时定位wx.stopLocationUpdate(_locationChangeFn); // 关闭监听 不关闭监听的话,有时获取位置时会非常慢}wx.startLocationUpdate({success: (res) => {wx.onLocationChange(_locationChangeFn)},fail: (err) => {// 重新获取位置权限wx.openSetting({success(res) {res.authSetting = {"scope.userLocation": true}}})reject(err)}})})
}module.exports = {getLocation
}
在App.vue文件里引入封装的getLocation.js文件
<script>
import getLocation from "./pages/common/getLocation.js";
import { addUserTrail } from "@/api/promote.js";
var QQMapWX = require("./common/qqmap-wx-jssdk.js");//引入腾讯地图逆解析地址
var qqmapsdk;
export default {data() {return {latitude:'',longitude:''};},onLaunch: function () {setInterval(function () {//定时任务判断登录的角色在调用getLocation.jsif (uni.getStorageSync("ROLE_NAME") !== null &&uni.getStorageSync("ROLE_NAME") !== "" &&uni.getStorageSync("ROLE_NAME") === "BD") {getLocation.getLocation().then((res) => {console.log('当前所在位置的经纬度为:')console.log(res.latitude,res.longitude)const addUserTrailBody = {latitude: null,longitude: null,address: "",};addUserTrailBody.latitude = res.latitude;addUserTrailBody.longitude = res.longitude;addUserTrail(addUserTrailBody);});}}, 90000);},methods: {getMapAddress() {const that = this;const tMap = new QQMapWX({key: "xxx", //腾讯地图开发者密钥key});uni.getLocation({type: "wgs84",isHighAccuracy: true,success: (res) => {console.log(res);},fail: () => {console.log("获取经纬度失败");},complete: () => {tMap.reverseGeocoder({//逆解析location: {latitude: that.latitude,longitude: that.longitude,},success: function (res) {console.log("解析地址成功", res);console.log("当前地址:", res.result.address);const addUserTrailBody = {//拿到地理位置传递下latitude: null,longitude: null,address: "",};addUserTrailBody.latitude = res.latitude;addUserTrailBody.longitude = res.longitude;addUserTrailBody.address = res.address;addUserTrail(addUserTrailBody);uni.setStorage({key: "local",data: res.result.address,success() {console.log("用户地址信息已缓存");},});},fail: function (res) {uni.showToast({title: "定位失败",duration: 2000,icon: "none",});console.log(res);},complete: function (res) {//无论成功失败都会执行console.log("获取定位信息");return;uni.openLocation({latitude: that.latitude,longitude: that.longitude,success: function () {console.log("success");},});},});},});}, },
};
</script>
要在manifest.json文件里配置下内容
"permission": {"scope.userLocation": {"desc": "你的位置信息将用于定位效果展示"}
},
"requiredPrivateInfos": ["getLocation","onLocationChange","startLocationUpdate","chooseLocation"
],"requiredBackgroundModes": ["location"
]
相关文章:
微信小程序通过startLocationUpdate,onLocationChange获取当前地理位置信息,配合腾讯地图解析获取到地址
先创建个getLocation.js文件 //获取用户当前所在的位置 const getLocation () > {return new Promise((resolve, reject) > {let _locationChangeFn (res) > {resolve(res) // 回传地里位置信息wx.offLocationChange(_locationChangeFn) // 关闭实时定位wx.stopLoc…...
C/C++字符三角形 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
目录 C/C字符三角形 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C字符三角形 2020年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定一个字符,用它构造一个底边长5个字…...
Python数据挖掘:入门、进阶与实用案例分析——基于非侵入式负荷检测与分解的电力数据挖掘
文章目录 摘要01 案例背景02 分析目标03 分析过程04 数据准备05 属性构造06 模型训练07 性能度量08 推荐阅读赠书活动 摘要 本案例将根据已收集到的电力数据,深度挖掘各电力设备的电流、电压和功率等情况,分析各电力设备的实际用电量,进而为电…...
基于 Qt控制开发板 LED和C语言控制LED渐变亮度效果
## 资源简介 在STM32开发板,板载资源上有两个可自由控制的 LED。如下图原理 图其中我们以操作 LED1 为示例,LED1 为出厂系统的心跳指示灯。 ## 应用实例 想要控制这个 LED,首先出厂内核已经默认将这个 LED 注册成了 gpio-leds类型设备。所以我们可以直接在应用层接口直接…...
Android 11.0 禁用插入耳机时弹出的保护听力对话框
1.前言 在11.0的系统开发中,在某些产品中会对耳机音量调节过高限制,在调高到最大音量的70%的时候,会弹出音量过高弹出警告,所以产品 开发的需要要求去掉这个音量弹窗警告功能 2.禁用插入耳机时弹出的保护听力对话框的核心类 frameworks\base\packages\SystemUI\src\com\and…...
微信小程序案例2-3:婚礼邀请函
文章目录 一、运行效果二、知识储备(一)导航栏配置(二)标签栏配置(三)vw、vh单位(四)video组件(五)表单组件(六)Node.js概述 三、实现…...
K8S部署Dashboard
获取recommended.yaml文件 Dashboard是官方提供的一个UI,可用于基本管理K8s资源。 YAML下载地址: wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml如果网络错误无法直接下载,可以直接访问…...
【OJ比赛日历】快周末了,不来一场比赛吗? #10.29-11.04 #7场
CompHub[1] 实时聚合多平台的数据类(Kaggle、天池…)和OJ类(Leetcode、牛客…)比赛。本账号会推送最新的比赛消息,欢迎关注! 以下信息仅供参考,以比赛官网为准 目录 2023-10-29(周日) #3场比赛2023-10-30…...
常用应用安装教程---在centos7系统上安装Docker
在centos7系统上安装Docker 1:切换镜像源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo2:查看当前镜像源中支持的docker版本 yum list docker-ce --showduplicates | sort -r3&#x…...
CTFHub-SSRF-读取伪协议
WEB攻防-SSRF服务端请求&Gopher伪协议&无回显利用&黑白盒挖掘&业务功能点-CSDN博客 伪协议有: file:/// — 访问本地文件系统 http:/// — 访问 HTTP(s) 网址 ftp:/// — 访问 FTP(s) URLs php:/// — 访问各个输入/输出流(I/O streams) dic…...
推荐一款适合科技行业的CRM系统
推荐您一款科技行业好用的CRM系统——Zoho CRM客户管理系统,旨在帮助企业管理客户数据、销售过程、营销活动以及服务支持,助力业务增长及数字化转型,实现“以客户为中心”的企业管理和运营模式。 近些年,随着政府鼓励政策的出台、…...
ChatGPT 与 Python Echarts 完成热力图实例
热力图是一种数据可视化方式,它通过颜色的变化来表示数据的差异和分布。以下是使用热力图的一些作用和好处: 数据可视化:热力图可以将复杂的数据集转化为更直观、更易理解的形式。这对于很多人来说,尤其是那些没有深入统计学或数…...
vue3项目报错The template root requires exactly one element.eslint-plugin-vue
解决方案: 1.禁用 Vetur 并改用Volar》它现在是 Vue 3 项目的官方推荐。【必须重启vsCode】 从官方迁移指南: 建议使用带有我们官方扩展 Volar (opens new window) 的 VSCode,它为 Vue 3 提供了全面的 IDE 支持。 2.package.json文件中 &…...
【C++系列】STL容器——vector类的例题应用(12)
前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎!本章主要内容面向接触过C的老铁,下面是收纳的一些例题与解析~ 主要内容含: 目录 【例1] 只出现一次的数字i(范围for与模等(^))【例2]…...
常用应用安装教程---在centos7系统上安装JDK8
在centos7系统上安装JDK8 1:进入oracle官网下载jdk8的tar.gz包: 2:将下载好的包上传到每个服务器上: 3:查看是否上传成功: [rootkafka01 ~]# ls anaconda-ks.cfg jdk-8u333-linux-x64.tar.gz4…...
阿里云/腾讯云国际站代理:国际腾讯云的优势
国际腾讯云具有以下优势: 1. 全球覆盖:腾讯云在全球拥有30个区域,覆盖6个大洲,能够提供全球范围的云服务,满足不同地区用户的需求。 2. 大规模网络:腾讯云拥有庞大的全球网络,包括多个高速骨干…...
【软件教程】如何用C++检查TCP或UDP端口是否被占用
一、检查步骤 使用socket函数创建socket_fd套接字。使用sockaddr_in结构体配置协议和端口号。使用bind函数尝试与端口进行绑定,成功返回0表示未被占用,失败返回-1表示已被占用。 二、CODE 其中port需要修改为想要检测的端口号,也可以将代码…...
Flutter报错RenderBox was not laid out: RenderRepaintBoundary的解决方法
文章目录 报错问题分析问题原因 解决办法RenderBox was not laid out错误的常见原因常见原因解决方法 RenderRepaintBoundaryRenderRepaintBoundary用途 报错 RenderBox was not laid out: RenderRepaintBoundary#d4abf relayoutBoundaryup1 NEEDS-PAINT NEEDS-COMPOSITING-BI…...
0基础学习PyFlink——用户自定义函数之UDAF
大纲 UDAF入参并非表中一行(Row)的集合计算每个人考了几门课计算每门课有几个人考试计算每个人的平均分计算每课的平均分计算每个人的最高分和最低分 入参是表中一行(Row)的集合计算每个人的最高分、最低分以及所属的课程计算每课…...
MVC架构_Qt自己的MV架构
文章目录 前言模型/视图编程1.先写模型2. 视图3. 委托 例子(Qt代码)例1 查询本机文件系统例2 标准模型项操作例3 自定义模型示例:军事武器模型例4 只读模型操作示例例5 选择模型操作例6 自 定 义委 托(在testSelectionModel上修改) 前言 在Qt中…...
SEO如何提升网站权重_外链建设对SEO权重有什么作用
SEO如何提升网站权重_外链建设对SEO权重有什么作用 在当今互联网时代,网站的成功往往取决于其在搜索引擎上的排名。而搜索引擎优化(SEO)作为提升网站在搜索结果中排名的关键手段,其中的外链建设更是不可忽视的一环。SEO如何提升网…...
树莓派 AP 模式作为中继器或子路由器配置
树莓派 AP 模式作为中继器或子路由器配置设备:Raspberry Pi 4B W | 日期:2026-04-02 WiFi 芯片:BCM43455 | 系统:Raspberry Pi OS (64-bit)一、环境信息项目值设备型号Raspberry Pi Zero 2 WWiFi 芯片BCM43455内核版本6.6.x操作系…...
让旧电脑焕发新生:RyTuneX系统优化工具全解析
让旧电脑焕发新生:RyTuneX系统优化工具全解析 【免费下载链接】RyTuneX RyTuneX is a cutting-edge optimizer built with the WinUI 3 framework, designed to amplify the performance of Windows devices. Crafted for both Windows 10 and 11. 项目地址: http…...
收藏 | RAG核心认知:从“检索+生成”到“实时智能”,小白也能秒懂大模型技术范式!
收藏 | RAG核心认知:从“检索生成”到“实时智能”,小白也能秒懂大模型技术范式! RAG(检索增强生成)通过动态联动外部知识库与大语言模型(LLM),构建“实时信息输入-精准内容输出”闭…...
YimMenu全面指南:GTA V游戏体验的终极优化方案
YimMenu全面指南:GTA V游戏体验的终极优化方案 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trending/yi/YimMenu …...
SOA和微服务比较详解
SOA 与微服务架构深度比较 面向服务架构(SOA)和微服务架构(Microservices)都是将系统拆分为可独立部署的服务单元的设计风格,但它们在粒度、通信方式、数据管理、治理、适用场景等方面存在本质差异。系统分析师需要根据业务需求、团队能力和技术栈选择适合的架构。 一、定…...
Titanium SDK快速入门:10分钟创建你的第一个跨平台App
Titanium SDK快速入门:10分钟创建你的第一个跨平台App 【免费下载链接】titanium-sdk 🚀 Native iOS and Android Apps with JavaScript 项目地址: https://gitcode.com/gh_mirrors/ti/titanium-sdk Titanium SDK是一个强大的开源框架,…...
代码质量与测试框架:front-end-roadmap教你编写高质量前端代码
代码质量与测试框架:front-end-roadmap教你编写高质量前端代码 【免费下载链接】front-end-roadmap Tell you how to learn front end development ~ 项目地址: https://gitcode.com/gh_mirrors/fr/front-end-roadmap front-end-roadmap是一个专注于前端开发…...
2025_NIPS_HumanoidGen: Data Generation for Bimanual Dexterous Manipulation via LLM Reasoning
文章核心总结与翻译 一、主要内容 本文提出HumanoidGen,一款基于大语言模型(LLM)推理的自动化框架,专为类人机器人双手机动操作生成任务场景与演示数据。框架通过空间标注、LLM规划、蒙特卡洛树搜索(MCTS)增强推理等模块,解决现有数据集缺乏双手机动操作场景、数据收集…...
NotaGen古典音乐生成:5分钟快速上手,小白也能创作贝多芬风格钢琴曲
NotaGen古典音乐生成:5分钟快速上手,小白也能创作贝多芬风格钢琴曲 1. 前言:AI音乐创作新时代 想象一下,你坐在电脑前,轻点几下鼠标,就能生成一段贝多芬风格的钢琴曲。这不是科幻电影,而是Not…...
