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")." 公里";

 

posted @ 2015-11-09 16:04  臭脸喵  阅读(272)  评论(0)    收藏  举报