php实现计算百度地图坐标之间距离的方法
程序员文章站
2023-12-20 14:29:34
本文实例讲述了php实现计算百度地图坐标之间距离的方法。分享给大家供大家参考,具体如下:
下面是网上的代码,使用的时候需要进行些许修改
第一个函数是获得范围,参数为纬度...
本文实例讲述了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程序设计有所帮助。