Функция выбора [ Источник ]
function getDistance($latitude1, $longitude1,
$latitude2, $longitude2, $unit = 'Mi')
{
$theta = $longitude1 - $longitude2;
$distance = (sin(deg2rad($latitude1)) *
sin(deg2rad($latitude2))) + (cos(deg2rad($latitude1)) *
cos(deg2rad($latitude2)) * cos(deg2rad($theta)));
$distance = acos($distance);
$distance = rad2deg($distance);
$distance = $distance * 60 * 1.1515;
switch($unit)
{
case 'm': break;
case 'K' : $distance = $distance *1.609344;
}
return (round($distance,2));
}
Эта функция округляет результат до двух десятичных знаков.
Теперь используйте точно так же, как вы используете
$driven_distance = getDistance($lat1,$lng1,$lat2,$lng2,$unit);
Обновление:
Если вы хотите узнать пройденное расстояние, лучше всего использовать Google геокод API.
$json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng=$lat,$long&sensor=true_or_false
');
$details = json_decode($json, TRUE);
var_dump($details);