uni-app 实现考勤打卡功能

一、在页面中引入地图组件

      <map id="map" style="width: 100%; height: 100%" :latitude="myLatitude" :longitude="myLongitude" :circles="circles" :markers="markers"> </map>
属性名类型说明
longitudeNumber中心经度
latitudeNumber中心纬度
markersArray标记点
circlesArray

1、显示地图中的圆形标识
在这里插入图片描述通过配置表格中的circles就能实现地图上的圆形标识

// 地图上圆形区域标识
const circles = ref([{latitude: '',longitude: '',color: '#69BFBE6A',fillColor: '#69BFBE6A',radius: 100,strokeWidth: 2,},
])
属性说明类型必填备注
latitude纬度Number浮点数,范围 -90 ~ 90
longitude经度Number浮点数,范围 -180 ~ 180
color描边的颜色String8位十六进制表示,后两位表示alpha值,如:#000000AA;#00000为十六进制
fillColor填充颜色String8位十六进制表示,后两位表示alpha值,如:#000000AA;#00000为十六进制
radius半径Number
strokeWidth描边的宽度Number
level压盖关系,默认为 abovelabelsStringfalse微信小程序

2、在地图中添加标记点,气泡提示框

在这里插入图片描述
配置markers展示标记点以及提示气泡

// 地图上气泡提示
const markers: any = ref([{id: 1,latitude: '',longitude: '',width: 10,height: 17,// iconPath: 'https://dianliu.oss-cn-hangzhou.aliyuncs.com/static/map/company.png',callout {content: '已进入打卡范围',color: '#FFFFFF',fontSize: 12,borderColor: '#69BFBE',bgColor: '#69BFBE',padding: 5,borderRadius: 3,display: 'ALWAYS',textAlign: 'center',}},
])
属性说明类型必填备注
latitude纬度Number浮点数,范围 -90 ~ 90
longitude经度Number浮点数,范围 -180 ~ 180
id标记点idNumbermarker点击事件回调会返回此id。建议为每个marker设置上Number类型id,保证更新marker时有更好的性能。最大限制9位数
title标注点名String点击时显示,callout存在时将被忽略
iconPath显示的图标String项目目录下的图片路径,支持相对路径写法,以’/'开头则表示相对小程序根目录;也支持临时路径
width标注图标宽度Number默认为图片实际宽度
height标注图标高度Number默认为图片实际高度
callout自定义标记点上方的气泡窗口Object支持的属性见下表,可识别换行符。

二、小程序获取定位信息

可以通过小程序提供的方法获取到当前的定位
官方链接:https://developers.weixin.qq.com/miniprogram/dev/api/location/wx.startLocationUpdateBackground.html

const getLocation = () => {uni.showLoading({title: '定位中...',mask: true,})return new Promise((resolve, reject) => {const _locationChangeFn = (res: any) => {console.log('location change', res)uni.hideLoading()wx.offLocationChange(_locationChangeFn)}wx.startLocationUpdate({success: (res: any) => {wx.onLocationChange(_locationChangeFn)resolve(res)},fail: (err: any) => {reject()},})})
}

这个方法也可以获取到定位信息,但是不能频繁的获取

 uni.getLocation({type: 'wgs84',altitude: true,success: function (res) {// res  获取到的定位信息},})

在手机上进行测试时可能会无法定位,这是我们就需要在manifest.json文件配置下图中红框中的内容

在这里插入图片描述

三、打卡签到

此时我们拿到了自己所在位置经纬度以及签到地经纬度可以通过计算得到两点之间的距离,再通过与我们地图圆形区域半径进行比较,便可以判断用户是否进入打卡区域。

计算方法:

// 计算距离
const getDistance = (point1: any[], point2: any[]) => {let [x1, y1] = point1let [x2, y2] = point2let Lat1 = rad(x1) // 纬度let Lat2 = rad(x2)let a = Lat1 - Lat2 //	两点纬度之差let b = rad(y1) - rad(y2) //	经度之差let s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(Lat1) * Math.cos(Lat2) * Math.pow(Math.sin(b / 2), 2)))//	计算两点距离的公式s = s * 6378137.0 //	弧长等于弧度乘地球半径(半径为米)s = Math.round(s * 10000) / 10000 //	精确距离的数值console.log(s)distance.value = s
}

原文链接:https://blog.csdn.net/qq_57399113/article/details/127588698

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

取消加考!自考专业调整,2026年起执行新计划!

就在2023年10月7日&#xff0c;广东省教育考试院发布《关于广东省高等教育自学考试专业调整有关事项的通知》&#xff0c;自学考试迎来新变化&#xff0c;本次专业调整政策性强&#xff0c;涉及面广&#xff0c;持续时间长&#xff0c;一起来看看具体说明~ 关于广东省高等教育自…

ubuntu下使用gcc编译c程序: “error: stray ‘\357’ in program“

现象&#xff1a; ubuntu下使用gcc编译c程序: “error: stray ‘\357’ in program“ 尝试查找原因&#xff1a;打开从windos直接粘贴c程序到ubuntu的c代码&#xff0c;发现多了 <200b>&#xff1a; 方案&#xff1a;尝试在vim编辑器删除&#xff0c;多出来的字符后编译…

HSRP热备份路由器协议的解析和配置

HSRP的解析 个人简介 HSRP hot standby router protocol 热备份路由协议&#xff08;思科私有协议&#xff09; HSRP v1 version 1 HSRP v2 version 2 虚拟一个HSRP虚拟IP地址 192.168.1.1 开启HSRP的抢占功能 通过其他参数 人为调整谁是主 谁是从 &#xff01; 查…

docker-compose Install hfish

前言hfish HFish是一款社区型免费蜜罐,侧重企业安全场景,从内网失陷检测、外网威胁感知、威胁情报生产三个场景出发,为用户提供可独立操作且实用的功能,通过安全、敏捷、可靠的中低交互蜜罐增加用户在失陷感知和威胁情报领域的能力。 HFish具有超过40种蜜罐环境、提供免费…

JAVA设计模式-适配器模式

一.概念 ​ 将一个接口转换成客户希望的另一个接口&#xff0c;使接口不兼容的那些类可以一起工作&#xff0c;其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式&#xff0c;也可以作为对象结构型模式。 ​ 在适配器模式中&#xff0c;我们通过增加一个新的适配器…

【vue3+ts】项目初始化

1、winr呼出cmd&#xff0c;输入构建命令 //用vite构建 npm init vitelatest//用cli脚手架构建 npm init vurlatest2、设置vscode插件 搜索volar&#xff0c;安装前面两个 如果安装了vue2的插件vetur&#xff0c;要禁用掉&#xff0c;否则插件会冲突

vscode安装svn扩展(windows)

一、安装 1.1 环境说明 操作系统 windows 10 1.2 安装过程 1. 安装svn 双击安装程序 点击next 继续next 继续next 点击Install 在弹出框中点击 是 开始安装进度&#xff0c;一会将安装成功 安装结束 右键菜单栏中已经有svn选项&#xff0c;并且能正常拉取以…

怎么把heic改成jpg?方法大全在这里

怎么把heic改成jpg&#xff1f;HEIC是一种现代的图像文件格式。它是由ISO制定的标准&#xff0c;并得到了苹果公司的支持和推广。与JPG等传统图像格式相比&#xff0c;HEIC格式可以提供更好的图像质量&#xff0c;并且占用更少的存储空间。这使得它在手机、平板电脑和其他移动设…

气膜建筑的可持续性:能源效益与环境影响

气膜建筑作为现代建筑技术的一种创新形式&#xff0c;不仅为城市景观增添了未来感&#xff0c;同时也在建筑领域引发了可持续性发展的讨论。本文将探讨气膜建筑在可持续性方面的关键议题&#xff0c;特别聚焦于其能源效益和环境影响&#xff0c;以期为未来气膜建筑设计和规划提…

Tomcat自启动另一种方法

Tomcat自启动另一种方法 问题&#xff1a; 不知道怎么回事&#xff0c;好几台电脑都可以开机自启动tomcat&#xff0c;正常运行项目。一样的配置一样的操作流程&#xff0c;偏偏要运行的机器开机自启动后&#xff0c;项目不能运行&#xff0c;手动重启tomcat又可以用了。网上…

自动化测试的执行策略详解

前言 自动化测试的执行策略是指在自动化测试过程中&#xff0c;为了达到测试目标和要求&#xff0c;所采用的测试执行方案和策略。 执行策略涉及到测试用例的执行顺序、方式、环境、频率等方面的决策。 同时&#xff0c;我也准备了一份软件测试视频教程&#xff08;含接口、…

WSL2下的Docker配置和使用

在Windows的Linux子系统&#xff08;Windows Subsystem for Linux&#xff09;WSL2中安装、配置和使用 Docker&#xff0c;可以参考官方教程&#xff1a;WSL上的Docker远程容器入门. 重要步骤总结如下&#xff1a; 先决条件 确保你的计算机运行的是 Windows 10&#xff08;更…