小程序用户(公司员工)需要在小程序选择位置打卡并上传位置,为了保证员工是真实的去指定的地点开展了公司的业务而不是虚假打卡上传的位置,需要进行地理围栏限制,要求打卡上传的位置地点必须和员工的真实位置在一个可接受的距离范围内,防止员工作弊打卡
这个很简单,腾讯官方有详细的接入步骤,通过此步骤我们可以获取到员工的选点经纬度
latitude
longitude
wx.getLocation({
type: 'gcj02',
success: function (res) {
that.setData({
lat1:res.latitude,
lng1:res.longitude,
})
}
})
调用此方法获取用户当前真实位置的经纬度
lat1
lng1
distance方法
:返回两点之间的直线距离(单位:km
)
//计算两点之间的距离
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即可
//计算地图地位点和自己真实位置的距离
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 删除。