肥宅自学平台_人人成为技术开发者

肥宅人只等待您,联系我们吧,曾经的巅峰是否能回来?我们正在用心服务!

PHP查询附近人及其距离的实现方法

 更新时间:2024-04-19 15:09:55   作者:肥宅-季波   我要评论(0)  

         本文实例讲述了PHP查询附近的人及其距离的实现方法。分享给大家供大家参考
  1. <?php
  2. //获取该点周围的4个点
  3. $distance = 1;//范围(单位千米)
  4. $lat = 113.873643;
  5. $lng = 22.573969;
  6. define('EARTH_RADIUS', 6371);//地球半径,平均半径为6371km
  7. $dlng = 2 * asin(sin($distance / (2 * EARTH_RADIUS)) / cos(deg2rad($lat)));
  8. $dlng = rad2deg($dlng);
  9. $dlat = $distance/EARTH_RADIUS;
  10. $dlat = rad2deg($dlat);
  11. $squares = array('left-top'=>array('lat'=>$lat + $dlat,'lng'=>$lng-$dlng),
  12.         'right-top'=>array('lat'=>$lat + $dlat, 'lng'=>$lng + $dlng),
  13.         'left-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng - $dlng),
  14.         'right-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng)
  15.         );
  16. print_r($squares['left-top']['lat']);
  17. //从数库查询匹配的记录
  18. $info_sql = "select * from `A` where lat<>0 and lat>{$squares['right-bottom']['lat']} and lat<{$squares['left-top']['lat']} and lng>{$squares['left-top']['lng']} and lng<{$squares['right-bottom']['lng']} ";
  19. //获取两点之间的距离
  20. function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) {
  21.   $theta = $longitude1 - $longitude2;
  22.   $miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
  23.   $miles = acos($miles);
  24.   $miles = rad2deg($miles);
  25.   $miles = $miles * 60 * 1.1515;
  26.   $feet = $miles * 5280;
  27.   $yards = $feet / 3;
  28.   $kilometers = $miles * 1.609344;
  29.   $meters = $kilometers * 1000;
  30.   return compact('miles','feet','yards','kilometers','meters');
  31. }
  32. $point1 = array('lat' => 40.770623, 'long' => -73.964367);
  33. $point2 = array('lat' => 40.758224, 'long' => -73.917404);
  34. $distance = getDistanceBetweenPointsNew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
  35. foreach ($distance as $unit => $value) {
  36.   echo $unit.': '.number_format($value,4).'<br />';
  37. }
  38. ?>
"小礼物走一走,来肥宅自学平台支持我"
评论区

评论

共条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~
客服中心在线客服
全心全意为平台用户服务
Copyright © 2017-2023 自学平台网站地图:去查看>
  • 肥宅人自己的自学平台
  • 人人都能成为平台讲师
  • 贡献你的力量壮大肥宅自学平台
  • 将自己的能力变现
  • 实现人生的第二职业
网址收藏平台安卓APP
微信公众号微信公众号

本站部分图片或者资源来自程序自动采集或卖家(商家)发布,如果侵犯了您的权益请与我们联系,我们将在24小时内删除!谢谢!

肥宅自学教程网是一个主打IT视频教程、自媒体运行、摄影剪辑等内容的资源学习交流平台。