我有一個像下面在數組中找到最接近的經度和緯度?
49.648881
-103.575312
一個經度和緯度作爲PHP一個字符串,我想採取並查看值的數組找到最接近的一個。該陣列看起來像
array(
'0'=>array('item1','otheritem1details....','55.645645','-42.5323'),
'1'=>array('item1','otheritem1details....','100.645645','-402.5323')
);
我想要返回具有最長和最近的數組。在這種情況下,它將是第一個(是的,我知道-400不是一個可能的值)。
有沒有什麼快速簡單的方法來做到這一點?我嘗試了數組搜索,但沒有奏效。
差異代碼
function distance($lat1, $lon1, $lat2, $lon2, $unit) {
$theta = $lon1 - $lon2;
$dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
$dist = acos($dist);
$dist = rad2deg($dist);
$miles = $dist * 60 * 1.1515;
$unit = strtoupper($unit);
if ($unit == "K") {
return ($miles * 1.609344);
} else if ($unit == "N") {
return ($miles * 0.8684);
} else {
return $miles;
}
}
能否請您提供您的代碼,你得到兩個經/緯對像'作用距離($ LAT1之間的距離,$ long1,$ lat2,$ long2){...'? – hakre 2012-03-06 17:52:45
這沒有意義,它是簡單的數學? 55 - 49 = 6,55-100 = 45 6小於45. – Steven 2012-03-06 17:54:58
您是否確實知道如何計算地球上兩點之間的距離? – hakre 2012-03-06 17:56:19