本文实例讲述了php实现计算百度地图坐标之间距离的方法。分享给大家供大家参考,具体如下:
下面是网上的代码,使用的时候需要进行些许修改
第一个函数是获得范围,参数为纬度经度半径
第二个函数是计算坐标距离
<?php
define('pi',3.1415926535898);
define('earth_radius',6378.137);
//计算范围,可以做搜索用户
function getrange($lat,$lon,$raidus){
//计算纬度
$degree = (24901 * 1609) / 360.0;
$dpmlat = 1 / $degree;
$radiuslat = $dpmlat * $raidus;
$minlat = $lat - $radiuslat; //得到最小纬度
$maxlat = $lat + $radiuslat; //得到最大纬度
//计算经度
$mpdlng = $degree * cos($lat * (pi / 180));
$dpmlng = 1 / $mpdlng;
$radiuslng = $dpmlng * $raidus;
$minlng = $lon - $radiuslng; //得到最小经度
$maxlng = $lon + $radiuslng; //得到最大经度
//范围
$range = array(
'minlat' => $minlat,
'maxlat' => $maxlat,
'minlon' => $minlng,
'maxlon' => $maxlng
);
return $range;
}
//获取2点之间的距离
function getdistance($lat1, $lng1, $lat2, $lng2){
$radlat1 = $lat1 * (pi / 180);
$radlat2 = $lat2 * (pi / 180);
$a = $radlat1 - $radlat2;
$b = ($lng1 * (pi / 180)) - ($lng2 * (pi / 180));
$s = 2 * asin(sqrt(pow(sin($a/2),2) + cos($radlat1)*cos($radlat2)*pow(sin($b/2),2)));
$s = $s * earth_radius;
$s = round($s * 10000) / 10000;
return $s;
}
更多关于php相关内容感兴趣的读者可查看本站专题:《php数组(array)操作技巧大全》、《php数学运算技巧总结》、《php正则表达式用法总结》、《php+ajax技巧与应用小结》、《php运算与运算符用法总结》、《php网络编程技巧总结》、《php基本语法入门教程》、《php日期与时间用法总结》、《php面向对象程序设计入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》
希望本文所述对大家php程序设计有所帮助。
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!