• File: test.php
  • Full Path: /home/dealkatnwc/www/test/test.php
  • Date Modified: 03/07/2023 12:17 PM
  • File size: 1.58 KB
  • MIME-type: text/plain
  • Charset: utf-8

<?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>.";

?>