PHP实现判断员工打卡签到经纬度是否在打卡之内
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,本篇内容介绍了"PHP实现判断员工打卡签到经纬度是否在打卡之内"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2025年11月07日PHP实现判断员工打卡签到经纬度是否在打卡之内
本篇内容介绍了"PHP实现判断员工打卡签到经纬度是否在打卡之内"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
具体代码如下所述:
/* 计算两组经纬度坐标之间的距离 * @param $lat1 纬度1 * @param $lng1 经度1 * @param $lat2 纬度2 * @param $lng2 经度2 * @param int $len_type 返回值类型(1-m 2-km) * @param int $decimal 保留小数位数 * @return float */ public function getDistance($lat1, $lng1, $lat2, $lng2, $len_type = 1, $decimal = 2) { $radLat1 = $lat1 * 3.1415926 / 180.0; $radLat2 = $lat2 * 3.1415926 / 180.0; $a = $radLat1 - $radLat2; $b = ($lng1 * 3.1415926 / 180.0) - ($lng2 * 3.1415926 / 180.0); $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))); $s = $s * 6378.137; $s = round($s * 1000); if ($len_type > 1) { $s /= 1000; } return round($s, $decimal); }ps:下面看下根据经纬度判断签到范围是否在指定范围内
/** * 将角度换算为弧度 * @param d 角度 * @return 弧度 */ private static double rad(double d) { return d * Math.PI / 180.0; } /** * 先通过经纬度获取距离(单位:米),再判断一个点是否在圆形区域内(根据所给的半径坐比较) * @param n1=>app * @param n2=>仓库 * @param radius * @return */ public static boolean isInCircle(ZJPoint n1 ,ZJPoint n2,String radius){ final double EARTH_RADIUS = 6378.137;////地球半径 (千米) double radLat1 = rad(n1.getX()!=null ? n1.getX().doubleValue():0); double radLat2 = rad(n2.getX()!=null ? n2.getX().doubleValue():0); double radLon1 = rad(n1.getY()!=null ? n1.getY().doubleValue():0); double radLon2 = rad(n2.getY()!=null ? n2.getY().doubleValue():0); //两点之间的差值 double jdDistance = radLat1 - radLat2; double wdDistance = radLon1 - radLon2; double distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(jdDistance / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(wdDistance / 2), 2))); distance = distance * EARTH_RADIUS; distance = Math.round(distance * 10000d) / 10000d; distance = distance*1000;//将计算出来的距离千米转为米 double r = Double.parseDouble(radius); //判断一个点是否在圆形区域内 if (distance > r) { return false; } return true; }"PHP实现判断员工打卡签到经纬度是否在打卡之内"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
经纬
经纬度
打卡
员工
之间
内容
区域
半径
圆形
弧度
更多
知识
纬度
经度
范围
角度
实用
学有所成
接下来
仓库
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
为什么服务器访问不了ps
美国农业部数据库数据显示
公安部加强网络安全建设
曙光天阔服务器管理软件介绍
计算机网络技术专业单位保洁
魏晋小说软件开发
菜鸟网络技术有限公司招聘
纵协网络技术有限公司怎么样
云服务器管理运维的题目
网络技术应用 微盘
当今网络安全主要特点是整体的
网络安全概念股有哪几个
警银合作网络安全
湖北本地软件开发要多少钱
网络安全的研究性
mysql图书馆数据库源码
蓬江手机软件开发
网络技术信息化管理研究目的
部署环境是部署到服务器里吗
西双版纳嵌入式软件开发招聘
有什么网络技术类网站
传递数据库master
山东省春考网络技术类学校
服务器暴力风扇改造成打磨机
安阳哪个学校有计算机网络技术
服务器多网线
警银合作网络安全
识别手机里的数据库
mfc 加数据库
道畅管理软件开发面试题