具体代码如下所述:

/* 计算两组经纬度坐标之间的距离

* @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判断员工打卡签到经纬度是否在打卡之内,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

java ip 范围内打卡_定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内相关推荐

  1. java局部网内通话杂音_吞咽时盖住喉口,防止食物误入喉腔的喉软骨是

    [多选题]31 . 可能清除文件型计算机病毒的操作有 [单选题]24.下列属于显卡性能测试软件的是 [单选题]26. 下面属于计算机硬盘检测工具的 [多选题]40 笔记本电脑中可升级的部件有 [判断题 ...

  2. java扫描包内所有类_第20天|Java入门有野,修饰符

    在声明类.变量和方法时,可用修饰符指定对其的访问权限.Java通过指定不同的关键字,可以支持4种不同的级别访问权限. public : 公开,对所有类可见.protected : 保护,对在同一个包内 ...

  3. java ip 获取了两个_用Java获取本地的多个IP地址

    翻API翻出来的,拿出来晒晒... 特别适用于获取本地的多个IP地址 import java.net.InetAddress; import java.net.NetworkInterface; im ...

  4. java局部网内通话杂音_在Spring Boot反应式Web应用程序上启用SSL,并在控制台中对该打印进行http调用时出现异常噪音...

    在我创建了我的spring boot反应式Web应用程序以支持SSL之后,当我尝试对服务器进行http调用时,它会在控制台中的异常跟踪下面打印 . 作为应用程序所有者,我无法阻止任何人使用我的服务 . ...

  5. 我的世界多少java光影不卡_好看又实用的手游光影组件,流畅运行不卡顿

    小官微看了前天的评论 大家对光影的反响特别强烈 看来大家都特别喜欢好看的东西呀! 但是有冒险家问小官微: 小官微,能不能照顾一下手游版的玩家 出一期关于手游版的光影 光影这么好看的东西 当然要大家一起 ...

  6. python金融应用的好书推荐卡_【荐书】智能风控:Python金融风险管理与评分卡建模(梅子行 毛鑫宇 著)...

    原标题:[荐书]智能风控:Python金融风险管理与评分卡建模(梅子行 毛鑫宇 著) 图书简介 风险管理是金融的核心,信贷场景下的风险,很大程度上取决于贷款人的信用风险.因此,如何对贷款用户的信用风险 ...

  7. java那一年出来的_输入某年某月某日 判断其是那一年的第多少天

    [java]代码库Scanner scan = new Scanner(System. in); System. out .print("请输入年:" ); int year = ...

  8. 华为内部存储转sd卡_怎样把华为手机内存的东西传、转到SD卡中呢

    2016-08-24 华为mate8手机里没有SD卡有关系吗 华为Mate8支持SD卡锁功能,下面小编就来讲讲SD卡锁如何使用. 一.当前手机没有设置SD卡密码功能, 手机一旦丢失,SD卡中的内容也将 ...

  9. 电脑运行java程序很卡_我的世界卡运行不流畅解决办法

    在玩我的世界时候很卡怎么办?今天游戏园小编为大家带来了我的世界卡机不流畅的解决办法,一直被这个问题困扰的同学快来看看吧! 运行Mc很卡,但配置是达标的,可为java程序增加内存量提升流畅程度 方法一. ...

最新文章

  1. Java集合:ArrayList和LinkedList区别?
  2. PAT条条大路通罗马
  3. 利用 FFmpeg palettegen paletteuse 生成接近全色的 gif 动画
  4. PHP读取数据库表显示到前台
  5. 【转载】用Snort巧妙检测SQL注入和跨站脚本攻击
  6. 【搜索/推荐排序】FM,FFM,AFM,PNN,DeepFM:进行CTR和CVR预估
  7. 147页详述「结构在神经网络中的复兴」,图注意力网络一作博士论文公开
  8. 在laravel中,使用DB查询数据库后,返回的对象转为数组
  9. 《Adobe Dreamweaver CS6中文版经典教程》——第2课 HTML基础2.1 什么是HTML
  10. Xshell连接VMware的linux系统
  11. Python基础学习九 单元测试
  12. python可视化(莫烦python代码)
  13. 实战PyQt5: 137-QChart图表之散点图
  14. C语言字符串输出中文乱码
  15. 1月15日云栖精选夜读 | 重磅公开!阿里语音识别模型端核心技术,让你“听”见未来...
  16. 游戏音效制作初学者的福音—入门级软件介绍
  17. 营销增长系列:从零开始做运营?
  18. android系统可以识别NTFS格式吗,安卓手机支持ntfs格式的储存卡吗
  19. 如何使用FFmpeg命令处理音视频
  20. 三相PFC程序30KW充电桩 30KW三相PFC程序

热门文章

  1. 万师傅使用云产品,上手简单、开箱即用、省去运维烦恼
  2. 如何成为一个很厉害的工程师
  3. AnalyticDB for PG 如何作为数据源对接帆软 FineBI
  4. 100%移植阿里云移动测试技术,竟仅需1周?! ——移动测试专有云(1)
  5. 在 react 里写 vue3 ? 还写了自定义 hooks和 Hoc 构建了响应式 !
  6. 抢先看!Kubernetes v1.21 新特性一览
  7. java pinyin4j 首字母_通讯录之按汉字首字母排序 --java--pinyin4J
  8. java http 1.1_java11新特性HttpClient
  9. 计算机网络西北大学,西北大学计算机网络复习资料(拟)
  10. mysql 走索引 很慢_MySQL优化:为什么SQL走索引还那么慢?