前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序----地理围栏实现员工防作弊地图打卡功能

微信小程序----地理围栏实现员工防作弊地图打卡功能

作者头像
安德玛
修改2022-03-07 07:45:19
1.5K0
修改2022-03-07 07:45:19
举报
文章被收录于专栏:Cordova封装H5 APP

效果图

在这里插入图片描述
在这里插入图片描述

业务场景

小程序用户(公司员工)需要在小程序选择位置打卡并上传位置,为了保证员工是真实的去指定的地点开展了公司的业务而不是虚假打卡上传的位置,需要进行地理围栏限制,要求打卡上传的位置地点必须和员工的真实位置在一个可接受的距离范围内,防止员工作弊打卡

实现步骤

地图选点插件的引入实现小程序地图选点功能

这个很简单,腾讯官方有详细的接入步骤,通过此步骤我们可以获取到员工的选点经纬度

latitude

longitude

获取用户的当前定位
代码语言:javascript
复制
wx.getLocation({

    type: 'gcj02',

     success: function (res) {

        that.setData({

            lat1:res.latitude,

            lng1:res.longitude,

        })

    }

})

调用此方法获取用户当前真实位置的经纬度

lat1

lng1

根据经纬度计算真实位置和地图选点打卡位置的直线距离

distance方法:返回两点之间的直线距离(单位:km)

代码语言:javascript
复制
//计算两点之间的距离

export function juli(lat1, lng1, lat2, lng2) {

  var radLat1 = lat1 \* Math.PI / 180.0;

  var radLat2 = lat2 \* Math.PI / 180.0;

  var a = radLat1 - radLat2;

  var b = lng1 \* Math.PI / 180.0 - lng2 \* Math.PI / 180.0;

  var s = 2 \* Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) \* Math.cos(radLat2) \* Math.pow(Math.sin(b / 2), 2)));

  s = s \* 6378.137;

  s = Math.round(s \* 10000) / 10000;

  return s

}
地理围栏范围设置

例如我们要求员工打卡的距离范围为500米半径范围。

设置distance方法返回的距离小于等于0.5即可

完整代码

代码语言:javascript
复制
//计算地图地位点和自己真实位置的距离

    if (Number(juli(this.data.lat1, this.data.lng1, this.data.latitude, this.data.longitude))>0.5){

      wx.showModal({

        title: '温馨提示',

        content: '位置不能离你大于500米!',

        success: function (res) {

          if (res.confirm) {

          } else if (res.cancel) {

          }

        }

      });

    }else{

      这里执行正常的业务逻辑代码

    }

总结(做一个有灵魂有思想的人)

1、腾讯小程序这几年的进步大家有目共睹,现在小程序也越来越成熟,相信在不久的将来真的可以实现让每一个普通人都可以拥有一个自己的小程序,不在乎小程序是不是盈利是不是商业。我相信那个时候每个人都可以在属于自己的小程序里面天马行空、充分发挥自己的想法和创意。在得到自我满足的同时又能提高全民的创新能力和中国互联网整体的创新与活力(不是什么托,就是有感而发)

2、当你有一个很有意思的想法并兴致勃勃的准备付诸行动的时候,你内心那该死的理智会告诉你这种点子怎么怎么的不能商业化,怎么怎么的不能推广,怎么怎么的无法获取盈利,最终可能就胎死腹中。有些东西的诞生是必须要付出一定代价的,有些时候金钱真的不是衡量的标准。

3、欢迎大家互相交流学习,wx:15651012186

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 效果图
  • 业务场景
  • 实现步骤
    • 地图选点插件的引入实现小程序地图选点功能
      • 获取用户的当前定位
        • 根据经纬度计算真实位置和地图选点打卡位置的直线距离
          • 地理围栏范围设置
          • 完整代码
          • 总结(做一个有灵魂有思想的人)
          相关产品与服务
          云开发 CloudBase
          云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档