php实现计算百度地图坐标之间距离的方法
本文实例讲述了php实现计算百度地图坐标之间距离的方法。分享给大家供大家参考,具体如下:
下面是网上的代码,使用的时候需要进行些许修改
第一个函数是获得范围,参数为纬度经度半径
第二个函数是计算坐标距离
<?php
define('PI',3.1415926535898);
define('EARTH_RADIUS',6378.137);
//计算范围,可以做搜索用户
functionGetRange($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点之间的距离
functionGetDistance($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程序设计有所帮助。