php如何计算两坐标点之间的距离
本文实例为大家分享了php计算两坐标点之间距离的实现代码,供大家参考,具体内容如下
地球上两个点之间,可近可远。
当比较近的时候,可以忽略球面因素,当做是一个平面,这样就有了两种计算方法。
//两点间距离比较近
functiongetDistance($lat1,$lng1,$lat2,$lng2)
{
$earthRadius=6367000;//地球半径m
$lat1=($lat1*pi())/180;
$lng1=($lng1*pi())/180;
$lat2=($lat2*pi())/180;
$lng2=($lng2*pi())/180;
$calcLongitude=$lng2-$lng1;
$calcLatitude=$lat2-$lat1;
$stepOne=pow(sin($calcLatitude/2),2)+cos($lat1)*cos($lat2)*pow(sin($calcLongitude/2),2);
$stepTwo=2*asin(min(1,sqrt($stepOne)));
$calculatedDistance=$earthRadius*$stepTwo;
returnround($calculatedDistance);
}
//两点间距离比较远
functiongetLongDistance($lat1,$lng1,$lat2,$lng2,$radius=6378.137)
{
$rad=floatval(M_PI/180.0);
$lat1=floatval($lat1)*$rad;
$lng1=floatval($lng1)*$rad;
$lat2=floatval($lat2)*$rad;
$lng2=floatval($lng2)*$rad;
$theta=$lng2-$lng1;
$dist=acos(sin($lat1)*sin($lat2)+cos($lat1)*cos($lat2)*cos($theta));
if($dist<0){
$dist+=M_PI;
}
return$dist=$dist*$radius;
}
小编再为大家分享一段php坐标之间距离的求解代码:
1)
{
$s/=1000;
}
returnround($s,$decimal);
}
echoGetDistance(39.908156,116.4767,39.908452,116.450479,1);//输出距离/米
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。