根据海拔高度计算两点地理座标之间的相隔
原创/**
- 计算两点地理坐标之间的距离
- @param Decimal $longitude1 起点经度
- @param Decimal $latitude1 起点纬度
- @param Decimal $longitude2 终点经度
- @param Decimal $latitude2 终点纬度
- @param Int $unit 单位 1:米 2:公里
- @param Int $decimal 精度 保留小数位数
- @return Decimal
*/
function distance($longitude1, $latitude1, $longitude2, $latitude2, $unit=2, $decimal=2){
$EARTH_RADIUS = 6370.996; // 地球半径系数
$PI = 3.1415926;
$radLat1 = $latitude1 $PI / 180.0;
$radLat2 = $latitude2 $PI / 180.0;
$radLng1 = $longitude1 $PI / 180.0;
$radLng2 = $longitude2 $PI /180.0;
$a = $radLat1 - $radLat2;
$b = $radLng1 - $radLng2;
$distance = 2 asin(sqrt(pow(sin($a/2),2) + cos($radLat1) cos($radLat2) pow(sin($b/2),2)));
$distance = $distance $EARTH_RADIUS * 1000;
if($unit==2){
$distance = $distance / 1000;
}
return round($distance, $decimal);
}
-
// 起点坐标
-
$longitude1
= 113.330405;
-
$latitude1
= 23.147255;
-
// 终点坐标
-
$longitude2
= 113.314271;
-
$latitude2
= 23.1323;
-
$distance
= getDistance(
$longitude1
,
$latitude1
,
$longitude2
,
$latitude2
, 1);
-
echo
$distance
.
m
;
// 2342.38m
-
$distance
= getDistance(
$longitude1
,
$latitude1
,
$longitude2
,
$latitude2
, 2);
-
echo
$distance
.
km
;
// 2.34km
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除