<?php $locationArray['pointA'] = "9, rue Tronchet, 69006 Lyon"; $locationArray['pointB'] = "Gare de Lyon, Place Louis-Armand, 75571 Paris"; $googleApiKey = "AIzaSyApHwwfDREvHlEZDMYXpYKSt5RlXiYrjRo"; $positionArray = []; foreach($locationArray as $point => $location){ $locationUrl = urlencode($location); // $json = file_get_contents("https://maps.google.com/maps/api/geocode/json?key=" . $googleApiKey . "&components=locality:" . $locationUrl); $json = file_get_contents("https://maps.googleapis.com/maps/api/geocode/json?address=". $locationUrl ."&sensor=true"); $googleData = json_decode($json); echo "<br>"; var_dump($googleData->status); if ($googleData->status == 'OK') { $result = $googleData->results[0]; $positionArray[$point]['lat'] = $result->geometry->location->lat; $positionArray[$point]['lng'] = $result->geometry->location->lng; } } var_dump($positionArray); // Radius in Km $radiusEarthKm = 6371.07103; // Convert degrees to radians $radiusLatFrom = $positionArray['pointA']['lat'] * (pi() /180); $radiusLatTo = $positionArray['pointB']['lat'] * (pi() /180); // Radian difference (latitudes) $latDiff = $radiusLatTo - $radiusLatFrom; // Radian difference (longitudes) $lngDiff = ($positionArray['pointB']['lng'] - $positionArray['pointA']['lng']) * (pi() /180); // Distance $distance = 2 * $radiusEarthKm * sin(sqrt(sin($latDiff/2) * sin($latDiff/2) + cos($radiusLatFrom) * cos($radiusLatTo) * sin($lngDiff/2)*sin($lngDiff/2))); echo "Real distance de <b>".$locationArray['pointA']."</b> à <b>".$locationArray['pointB']."</b> is <b>".$distance."</b>."; ?>