Bonjour,

je souhaite récupérer les coordonnées latitude et longitude à partir d'une adresse. Mon problème c'est que ma fonction ne me renvoie aucune donnée et je ne comprends pas pourquoi.

J'utilise la fonction suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
function toCoordinates($address)
{
    $bad = array(
        " " => "+",
        "," => "+",
        "?" => "",
        "&" => "",
        "=" => ""
    );
	// nettoyage de l'adresse 
 
	$address = strtr($address,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
    $address = str_replace(array_keys($bad), array_values($bad), $address);
    $data = new SimpleXMLElement(file_get_contents("http://maps.googleapis.com/maps/api/geocode/xml?address=".$address."&sensor=false"));
	echo "<br>data  $data<br>";
	$latitude = $data->result->geometry->location->lat;
	$longitude = $data->result->geometry->location->lng;
	$response = $data->GeocodeResponse->status;
	return array($latitude, $longitude, $response);
 
}
J'appelle cette fonction et je récupère le résultat de la façon suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
$tab_localisation = toCoordinates($adresse);
	$latitude = $tab_localisation[0];
	$longitude = $tab_localisation[1];
	$reponse = $tab_localisation[2];
	echo "<br>Reponse: $reponse";
	echo "<br>Latitude Longitude : $latitude $longitude ";
Ce qui est étrange c'est que la fonction ne me renvoie rien pour la valeur suivante par exemple

57 rue du Faubourg Montmartre, Paris, France 75009
Alors que si j'appelle directement l'API de Google maps cela me renvoie bien des résultats.

http://maps.googleapis.com/maps/api/geocode/xml?address=57%20rue%20du%20Faubourg%20Montmartre,%20Paris,%20France%2075009&sensor=false


Donc je ne vois pas pourquoi je ne recupere aucune information.

Par avance merci de votre aide.