定位地理位置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 相关文章推荐
PHP原理之异常机制深入分析
Aug 08 PHP
兼容性比较好的PHP生成缩略图的代码
Jan 12 PHP
浅析PHP绘图技术
Jul 03 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
PHP解决URL中文GBK乱码问题的两种方法
Jun 03 PHP
php获取apk包信息的方法
Aug 15 PHP
PHP中的output_buffering详细介绍
Sep 27 PHP
PHP载入图像imagecreatefrom_gif_jpeg_png系列函数用法分析
Nov 14 PHP
ThinkPHP实现生成和校验验证码功能
Apr 28 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
Nov 06 PHP
对laravel in 查询的使用方法详解
Oct 09 PHP
tp5.1 框架数据库高级查询技巧实例总结
May 25 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
PHP4实际应用经验篇(8)
2006/10/09 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
Laravel 5 框架入门(二)构建 Pages 的管理功能
2015/04/09 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
PHP实现基于mysqli的Model基类完整实例
2016/04/08 PHP
javascript 面向对象编程基础:继承
2009/08/21 Javascript
javascript 浏览器检测代码精简版
2010/03/04 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
加载远程图片时,经常因为缓存而得不到更新的解决方法(分享)
2013/06/26 Javascript
禁止iframe脚本弹出的窗口覆盖了父窗口的方法
2014/09/06 Javascript
jQuery中remove()方法用法实例
2014/12/25 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
js实现图片实时时钟
2020/01/15 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
[52:57]2014 DOTA2国际邀请赛中国区预选赛 LGD-CDEC VS HGT
2014/05/21 DOTA
Python专用方法与迭代机制实例分析
2014/09/15 Python
在Python的Flask框架中使用日期和时间的教程
2015/04/21 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
Python实现的视频播放器功能完整示例
2018/02/01 Python
Python函数装饰器实现方法详解
2018/12/22 Python
通过实例解析Python return运行原理
2020/03/04 Python
Pycharm最常用的快捷键及使用技巧
2020/03/05 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
利用CSS3伪元素实现逐渐发光的方格边框
2017/05/07 HTML / CSS
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
魔声耳机官方网站:Monster是世界第一品牌的高性能耳机
2016/10/26 全球购物
英国玛莎百货新西兰:Marks & Spencer New Zealand
2019/07/21 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
生物技术专业毕业生求职信范文
2013/12/14 职场文书
家长建议怎么写
2014/05/15 职场文书
入党政审材料范文
2014/12/24 职场文书
五一晚会主持词
2015/07/01 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
基于Python和openCV实现图像的全景拼接详细步骤
2021/10/05 Python