par
pereablanco » 27 févr. 2019, 19:14
Je reviens vers vous, car j'ai trouvé la solution à mon problème.
Pour que ça serve à d'autre, je mets ici la solution pour ceux qui seraient confronter au même problème que moi.
Voici mon script avant l'arrivée des CLÉ API imposées 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;
}
}
Et voici maintenant le code corrigé avec la clé API Google.
Il faut bien sûr remplacer "MA_CLE_API" par votre clé API.
Pour ceux qui ne savent pas comment se procurer une clé API, rendez-vous ici pour vous procurer votre propre clé API Google : https://cloud.google.com/maps-platform/?hl=fr
IMPORTANT : il faut aussi activer la facturation auprès de Google en renseignant votre CB (mais pas d'inquiétude, si vous êtes un petit site internet, et qu'il il ne génère que très peu de trafic, Google ne vous facturera rien ou vraiment très très peu...).
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);
}
IMPORTANT : Il faut aussi corriger tout les liens Google qui apparaitraient dans le code de vos pages comme suivant :
<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
par
<script src="https://maps.googleapis.com/maps/api/js?key=MA_CLE_API" type="text/javascript"></script>
Voilà;)
Je reviens vers vous, car j'ai trouvé la solution à mon problème.
Pour que ça serve à d'autre, je mets ici la solution pour ceux qui seraient confronter au même problème que moi.
[B]Voici mon script avant l'arrivée des CLÉ API imposées par Google.[/B]
[PHP]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;
}
}[/PHP]
[B]Et voici maintenant le code corrigé avec la clé API Google.[/B]
Il faut bien sûr remplacer "MA_CLE_API" par votre clé API.
[I]Pour ceux qui ne savent pas comment se procurer une clé API, rendez-vous ici pour vous procurer votre propre clé API Google : https://cloud.google.com/maps-platform/?hl=fr
IMPORTANT : il faut aussi activer la facturation auprès de Google en renseignant votre CB (mais pas d'inquiétude, si vous êtes un petit site internet, et qu'il il ne génère que très peu de trafic, Google ne vous facturera rien ou vraiment très très peu...).[/I]
[PHP]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);
}[/PHP]
[b]IMPORTANT : Il faut aussi corriger tout les liens Google qui apparaitraient dans le code de vos pages comme suivant : [/b]
[PHP] <script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>[/PHP]
par
[PHP]<script src="https://maps.googleapis.com/maps/api/js?key=MA_CLE_API" type="text/javascript"></script>[/PHP]
Voilà;)