計算兩點地理坐標之間的距離


/**
 * 計算兩點地理坐標之間的距離
 * @param  Decimal $origin_lng 		起點經度
 * @param  Decimal $origin_lat  	起點緯度
 * @param  Decimal $destination_lng 終點經度 
 * @param  Decimal $destination_lat 終點緯度
 * @param  Int     $decimal    		精度 保留小數位數
 * @return Decimal 					單位 米
 */
function get_map_distance($origin_lng, $origin_lat, $destination_lng, $destination_lat, $decimal=2) {
	
	//地球半徑系數
	$earth_radius = 6370.996;
	
	$radLat1 = deg2rad($origin_lat);
	$radLat2 = deg2rad($destination_lat);
	$radLng1 = deg2rad($origin_lng);
	$radLng2 = deg2rad($destination_lng);
	
	$a = abs($radLat1 - $radLat2);
	$b = abs($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;
	
	echo round($distance, $decimal);
}

get_map_distance(120.104419,30.272353,120.21761,30.295641);

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM