1、附近的人

//获取该点周围的4个点
$distance = 1;//范围(单位千米)
$lat = 113.873643;
$lng = 22.573969;
define('EARTH_RADIUS', 6371);//地球半径,平均半径为6371km
$dlng = 2 * asin(sin($distance / (2 * EARTH_RADIUS)) / cos(deg2rad($lat)));
$dlng = rad2deg($dlng);
$dlat = $distance/EARTH_RADIUS;
$dlat = rad2deg($dlat);
$squares = array('left-top'=>array('lat'=>$lat + $dlat,'lng'=>$lng-$dlng),
'right-top'=>array('lat'=>$lat + $dlat, 'lng'=>$lng + $dlng),
'left-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng - $dlng),
'right-bottom'=>array('lat'=>$lat - $dlat, 'lng'=>$lng + $dlng)
);
print_r($squares['left-top']['lat']);
//从数库查询匹配的记录
$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']} ";

2、两点之间的距离

function getDistanceBetweenPointsNew($latitude1, $longitude1, $latitude2, $longitude2) {
$theta = $longitude1 - $longitude2;
$miles = (sin(deg2rad($latitude1)) * sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) * cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
$miles = acos($miles);
$miles = rad2deg($miles);
$miles = $miles * 60 * 1.1515;
$feet = $miles * 5280;
$yards = $feet / 3;
$kilometers = $miles * 1.609344;
$meters = $kilometers * 1000;
return compact('miles','feet','yards','kilometers','meters');
}
$point1 = array('lat' => 40.770623, 'long' => -73.964367);
$point2 = array('lat' => 40.758224, 'long' => -73.917404);
$distance = getDistanceBetweenPointsNew($point1['lat'], $point1['long'], $point2['lat'], $point2['long']);
foreach ($distance as $unit => $value) {
echo $unit.': '.number_format($value,4).'<br />';
}

转“https://www.php.cn/php-weizijiaocheng-316.html”

最新文章

  1. Linux学习之五--常用操作
  2. Python单例模式
  3. 有关segue的简介
  4. PHP超时处理全面总结(转)
  5. 用urllib2实现一个下载器的思路
  6. iOS开发之自定义输入框(利用UITextField及UITextView)
  7. WCF的基本知识-仅Http绑定的认知
  8. Swift - 启动时的向导页(新手引导)的制作
  9. 蓝桥网试题 java 入门训练 Fibonacci数列
  10. JavaScript call()和apply()
  11. AssetBundle实现服务器下载并从本地读取
  12. Ubuntu命令行连接WPA/WPA2无线网线
  13. 51 nod 1055 最长等差数列(dp)
  14. bzoj 4008: [HNOI2015]亚瑟王
  15. Android ROM开发(二)——ROM架构以及Updater-Script脚本分析,常见的Status错误解决办法
  16. C#类型(一)
  17. MVC ModelState.AddModelError使用
  18. Windows 10 运行原生Bash【Ubuntu】
  19. java抽象类和抽象方法
  20. mysql查询表达式解析

热门文章

  1. 处理海量数据的grep、cut、awk、sed 命令
  2. JDOJ 1789: 高精度A+B
  3. JavaScript中的this—你不知道的JavaScript上卷读书笔记(三)
  4. [LeetCode] 9. Palindrome Number 验证回文数字
  5. TCP三次握手第三次握手时ACK丢失怎么办
  6. 【转】机器学习实战之K-Means算法
  7. [LeetCode] 834. Sum of Distances in Tree 树中距离之和
  8. Webpack 一些核心概念了解
  9. find square root
  10. 解决windows server 2008R2自动关机