定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内


Posted in PHP onMay 23, 2019

具体代码如下所述:

/* 计算两组经纬度坐标之间的距离
  * @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判断员工打卡签到经纬度是否在打卡之内,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
PHP4之COOKIE支持详解
Oct 09 PHP
PHP中ADODB类详解
Mar 25 PHP
探讨php中防止SQL注入最好的方法是什么
Jun 10 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
模板引擎smarty工作原理以及使用示例
May 25 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
Dec 08 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
Yii框架防止sql注入,xss攻击与csrf攻击的方法
Oct 18 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
PHP实现的二分查找算法实例分析
Dec 19 PHP
实例解析php的数据类型
Oct 24 PHP
php和nginx交互实例讲解
Sep 24 PHP
Swoole4.4协程抢占式调度器详解
May 23 #PHP
PHP文件上传小程序 适合初学者学习!
May 23 #PHP
PHP观察者模式实例分析【对比JS观察者模式】
May 22 #PHP
PHP单例模式实例分析【防继承,防克隆操作】
May 22 #PHP
在Laravel5中正确设置文件权限的方法
May 22 #PHP
PHP 结合 Boostrap 结合 js 实现学生列表删除编辑及搜索功能
May 21 #PHP
thinkphp5框架API token身份验证功能示例
May 21 #PHP
You might like
PHP获取远程图片并保存到本地的方法
2015/05/12 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
yii2使用GridView实现数据全选及批量删除按钮示例
2017/03/01 PHP
在Z-Blog中运行代码[html][/html](纯JS版)
2007/03/25 Javascript
CLASS_CONFUSION JS混淆 全源码
2007/12/12 Javascript
中文路径导致unitpngfix.js不正常的解决方法
2013/06/26 Javascript
浅谈javascript中基本包装类型
2015/06/03 Javascript
浏览器兼容性问题大汇总
2015/12/17 Javascript
VUEJS实战之利用laypage插件实现分页(3)
2016/06/13 Javascript
用原生js做单页应用
2017/01/17 Javascript
js转换对象为xml
2017/02/17 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
js阻止默认右键的下拉菜单方法
2018/01/02 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
详解webpack-dev-server的简单使用
2018/04/02 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
Python删除Java源文件中全部注释的实现方法
2017/08/30 Python
python适合人工智能的理由和优势
2019/06/28 Python
英国Boots旗下太阳镜网站:Boots Designer Sunglasses
2018/07/07 全球购物
Lowe’s加拿大:家居装修、翻新和五金店
2019/12/06 全球购物
判断单链表中是否存在环
2012/07/16 面试题
电子商务专业个人的自我评价
2013/11/19 职场文书
销售经理工作职责范文
2013/12/03 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
出纳试用期自我鉴定
2014/04/07 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
活动倡议书范文
2014/05/13 职场文书
红领巾广播站广播稿
2014/10/19 职场文书
教师年度考核个人总结
2015/02/12 职场文书
新入职员工工作总结
2015/10/15 职场文书
2015年幼儿园师德师风建设工作总结
2015/10/23 职场文书
2019自荐信该如何写呢?
2019/07/05 职场文书
vue2实现provide inject传递响应式
2021/05/21 Vue.js
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫