PHP 根据经度和纬度计算距离【转载】
php 代码如下(算法及代码来源于网络,只是觉得不错跟大家分享下)
1 <?php 2 /** 3 * 根据经度和纬度计算距离 4 * @param double $lat1 A点纬度 Latitude 5 * @param double $lon1 A点经度 Longitude 6 * @param double $lat2 B点纬度 Latitude 7 * @param double $lon2 B点经度 Longitude 8 * @param string $unit 单位 9 * @return double $miles 10 */ 11 function distance($lat1, $lon1, $lat2, $lon2, $unit) { 12 $theta = $lon1 - $lon2; 13 $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta)); 14 $dist = acos($dist); 15 $dist = rad2deg($dist); 16 $miles = $dist * 60 * 1.1515; 17 $unit = strtoupper($unit); 18 if ($unit == "K") { 19 return ($miles * 1.609344); 20 } else if ($unit == "N") { 21 return ($miles * 0.8684); 22 } else { 23 return $miles; 24 } 25 } 26 // 举个栗子 27 echo distance(32.9697, -96.80322, 29.46786, -98.53506, "k")." 公里";
浙公网安备 33010602011771号