下面这个函数(PHP实现)用于计算两个地理坐标之间的距离,主要用于处理源自Google地图的坐标数据。
验证数据:[48.856667, 2.350987], [38.895113, -77.036366] 验证结果:6172.4281776242KM
01 /** 02 * Calculate the distance between two coordinates. 03 * @param array $s, array(float:latitude, float: longitude) 04 * @param array $e, array(float:latitude, float: longitude) 05 * @return float, the distance 06 */ 07 function geo_distance( $s , $e ) { 08 09 //earth's mean radius in KM 10 $r = 6378.137; 11 12 $s [0] = deg2rad ( $s [0]); 13 $s [1] = deg2rad ( $s [1]); 14 15 $e [0] = deg2rad ( $e [0]); 16 $e [1] = deg2rad ( $e [1]); 17 18 $d0 = abs ( $s [0] - $e [0]); 19 $d1 = abs ( $s [1] - $e [1]); 20 21 $p = pow(sin( $d0 /2), 2) + cos ( $s [0]) * cos ( $e [0]) * pow(sin( $d1 /2), 2); 22 23 $ds = $r * 2 * asin(sqrt( $p )); 24 25 return $ds ; 26 }Web Developer, focusing on large-scale web application and server architecture and implementation.
View all posts by James Tang →