关闭

根据经纬度计算两点之间的距离

284人阅读 评论(0) 收藏 举报
分类:


/** 
* @desc 根据两点间的经纬度计算距离 
* @param float $lat 纬度值 
* @param float $lng 经度值 
*/
function getDistance($lat1, $lng1, $lat2, $lng2) { 
	$earthRadius = 6367000; //approximate radius of earth in meters 

	$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;
	return round($calculatedDistance); 
}

echo getDistance('39.900098','116.463441', '39.893604281165594', '116.44932746887207')  / 1000  .'公里';




原文地址:http://www.acehat.com/kf/201505/117126.html


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    公众号
    meitianxinlixueID:meitianxinlixue
    个人资料
    • 访问:665978次
    • 积分:6743
    • 等级:
    • 排名:第3459名
    • 原创:125篇
    • 转载:98篇
    • 译文:0篇
    • 评论:85条
    文章分类
    最新评论