PHP实现判断员工打卡签到经纬度是否在打卡之内
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,本篇内容介绍了"PHP实现判断员工打卡签到经纬度是否在打卡之内"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学
千家信息网最后更新 2026年10月31日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安全错误
数据库的锁怎样保障安全
互联网科技公司华为
关于新基建和互联网科技
广州互联网科技公司
成都互联网科技公司
深圳齐家互联网科技
美国互联网黑科技
互联网科技上市公司
郑州华宇互联网科技
四个字互联网科技公司取名
互联网实体化科技化
彤创互联网科技有限公司
湖南一路畅行互联网科技
想开互联网科技公司怎么样
高科技互联网发展前景如何
朱啸虎曾投资哪些互联网科技企业
黑科技 体验场景 互联网大会
广东工业互联网大赛深圳学泰科技
上海旺乐尼互联网科技有限公司
广东猫王互联网科技有限公司电话
广州全民伙伴互联网科技有限公司
网络科技有限互联网
互联网金融 金融科技
互联网科技素材视频竖屏
智腾互联网科技有限公司
内蒙古九一互联网科技
深圳艾果互联网通讯科技
沐思想互联网科技有限公司
互联网科技机房
版纳互联网科技选哪家
互联网科技大佬云集