定位地理位置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 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
Jan 30 PHP
php自动获取字符串编码函数mb_detect_encoding
May 31 PHP
解析PHP缓存函数的使用说明
May 10 PHP
thinkphp模板用法和内容输出实例
Nov 28 PHP
php购物车实现方法
Jan 03 PHP
PHP strtotime函数用法、实现原理和源码分析
Feb 04 PHP
php+ajax无刷新上传图片实例代码
Nov 17 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
php版微信公众平台之微信网页登陆授权示例
Sep 23 PHP
Yii2实现ActiveForm ajax提交
May 26 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
TP5框架使用QueryList采集框架爬小说操作示例
Mar 26 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
推荐几部必看的DC动画电影
2020/03/03 欧美动漫
随时给自己贴的图片加文字的php水印
2007/03/16 PHP
解决phpcms更换javascript的幻灯片代码调用图片问题
2014/12/26 PHP
Jquery插件之打造自定义的select标签
2011/11/30 Javascript
处理文本部分内容的TextRange对象应用实例
2014/07/29 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
JavaScript提高性能知识点汇总
2016/01/15 Javascript
javascript insertAfter()定义与用法示例
2016/07/25 Javascript
Bootstrap实现渐变顶部固定自适应导航栏
2020/08/27 Javascript
微信小程序 高德地图SDK详解及简单实例(源码下载)
2017/01/11 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
Vue框架下引入ActiveX控件的问题解决
2019/03/25 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
[01:02]DOTA2辉夜杯决赛日 CDEC.Y对阵VG赛前花絮
2015/12/27 DOTA
在Python中使用PIL模块对图片进行高斯模糊处理的教程
2015/05/05 Python
将Django框架和遗留的Web应用集成的方法
2015/07/24 Python
利用Python循环(包括while&for)各种打印九九乘法表的实例
2017/11/06 Python
DataFrame中去除指定列为空的行方法
2018/04/08 Python
Python功能点实现:函数级/代码块级计时器
2019/01/02 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
春节到了 教你使用python来抢票回家
2020/01/06 Python
python中函数返回多个结果的实例方法
2020/12/16 Python
利用CSS3制作简单的3d半透明立方体图片展示
2017/03/25 HTML / CSS
详解h5页面在不同ios设备上的问题总结
2019/03/01 HTML / CSS
康帕斯酒店预订:Compass Hospitality(支持中文)
2018/08/23 全球购物
adidas泰国官网:adidas TH
2020/07/11 全球购物
伦敦鲜花递送:Flower Station
2021/02/03 全球购物
测绘工程个人的自我评价
2013/11/10 职场文书
家长给孩子的评语
2014/01/30 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
2015年学校综合治理工作总结
2015/07/20 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
Python利用Turtle绘制哆啦A梦和小猪佩奇
2022/04/04 Python