/**
*求两个已知经纬度之间的距离,单位为千米
*@param lng1,lng2 经度
*@param lat1,lat2 纬度
*@return float 距离,单位千米
**/
private function _distance(
l
n
g
1
,
lng1,
lng1,lat1,
l
n
g
2
,
lng2,
lng2,lat2)//根据经纬度计算距离
{
//将角度转为弧度
r
a
d
L
a
t
1
=
d
e
g
2
r
a
d
(
radLat1=deg2rad(
radLat1=deg2rad(lat1);
r
a
d
L
a
t
2
=
d
e
g
2
r
a
d
(
radLat2=deg2rad(
radLat2=deg2rad(lat2);
r
a
d
L
n
g
1
=
d
e
g
2
r
a
d
(
radLng1=deg2rad(
radLng1=deg2rad(lng1);
r
a
d
L
n
g
2
=
d
e
g
2
r
a
d
(
radLng2=deg2rad(
radLng2=deg2rad(lng2);
a
=
a=
a=radLat1-$radLat2;//两纬度之差,纬度<90
b
=
b=
b=radLng1-$radLng2;//两经度之差纬度<180
s
=
2
∗
a
s
i
n
(
s
q
r
t
(
p
o
w
(
s
i
n
(
s=2*asin(sqrt(pow(sin(
s=2∗asin(sqrt(pow(sin(a/2),2)+cos(
r
a
d
L
a
t
1
)
∗
c
o
s
(
radLat1)*cos(
radLat1)∗cos(radLat2)*pow(sin($b/2),2)))*6378.137;
return $s;
}
PHP计算两个已知经纬度之间的距离
最新推荐文章于 2023-06-16 16:03:13 发布