Łukasz
C.
Senior Technical
Architect
- 1
- 2
konto usunięte
Temat: obliczanie odleglosci na podstawie latlng
TO CIE WSPOMOŻE KOLEGO!
/**
* get distance between to geocoords using great circle distance formula
*
* @param float $lat1
* @param float $lat2
* @param float $lon1
* @param float $lon2
* @param float $unit M=miles, K=kilometers, N=nautical miles, I=inches, F=feet
* @return float
*/
function geoGetDistance($lat1,$lon1,$lat2,$lon2,$unit='M') {
// calculate miles
$M = 69.09 * rad2deg(acos(sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($lon1 - $lon2))));
switch(strtoupper($unit))
{
case 'K':
// kilometers
return $M * 1.609344;
break;
case 'N':
// nautical miles
return $M * 0.868976242;
break;
case 'F':
// feet
return $M * 5280;
break;
case 'I':
// inches
return $M * 63360;
break;
case 'M':
default:
// miles
return $M;
break;
}
}
Enjoy!
z klasy GoogleMap.php ;]
Konrad
Karpieszuk
WordPress Plugin
Compatibility
Assurance for WPML
konto usunięte
Temat: obliczanie odleglosci na podstawie latlng
Wydaje mi się, że metoda z ortodromą (vide wikipedia) jest najbardziej sensowna, gdyż i tak wszystkie metody obarczone są błędami (zakładają, że ziemia jest kulą, a nie jest).Z tego względu do częstych obliczeń oparłbym się raczej o ten model niż wzór podany wcześniej w wątku (tak - jest on bardziej dokładny, ale nadal nie-dokładny)
- 1
- 2
Podobne tematy
Następna dyskusja: