Bonjour,
Je recontre un problème pour intégrer ma clé API Google.
Voici mon code lorsque tout fonctionné (avant l'arrivée de cette clé API imposée par Google) :
function getDistance($adresse1,$adresse2){
$adresse1 = str_replace(" ", "+", $adresse1);
$adresse2 = str_replace(" ", "+", $adresse2);
$url='http://maps.google.com/maps/api/directions/xml?language=fr&origin='.$adresse1.'&destination='.$adresse2.'&sensor=false';
$xml=file_get_contents($url);
$root = json_decode ($json);
$distance=$root->route->leg->distance->value;
if ($root->status == "OK")
{
return intval($distance);
}
else
{
return 0;
}
}
J'ai tenté de faire ceci (avec l'aide d'un ami) mais ça ne fonctionne pas non plus.
function getDistance($adresse1,$adresse2){
$adresse1 = str_replace(" ", "+", $adresse1);
$adresse2 = str_replace(" ", "+", $adresse2);
$api = file_get_contents("https://maps.googleapis.com/maps/api/distancematrix/json?units=imperial&origins=".$adresse1."&destinations=".$adresse2."&key=MA_CLE_API");
$data = json_decode($api);
$distance = $data->rows[0]->elements[0]->distance->value / 1000;
var_dump($distance);
die();
return intval($distance);
}
Grace à mon code (avant que Google n'impose la clé API), je pouvais calculer la distance de mon domicile à une destination afin de determiner des frais de déplacement :
EXEMPLE : le client renseignait mon formulaire et à la question "souhaitez vous que je me déplace ?", le client devait simplement indiquer le nom de sa ville (dans un champ vide) et valider pour voir apparaitre les frais lié à ce déplacement.
Mais depuis le changement de Google, les frais affichés lorsque le client valide le champ (VILLE) ne sont plus correct. Le script puise systématiquement sur la sommes la plus élevée (150€).
Pour information, j'ai programmé mes frais de déplacement comme suivant : 20€ pour 15 à 30 km, 30€ pour 30 à 60 km, 70€ pour 60 à 120 km et 150€ de 120 à 200km.
En se basant sur une ville comme Paris comme point de départ, et lorsque le client indique une ville en dessous de 30km, le script affiche par erreur 150€ au lien de 20€.
Je ne parbiens pas à trouver mon erreur.
Merci d'avance pour votre aide