Bonjour à tous,
j'ai l'api google suivante qui me permet d'obtenir les coordonnées GPS à partir d'une adresse :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| // define("MAPS_HOST", "maps.google.com");
define("MAPS_HOST", "maps.googleapis.com");
define("KEY", "swhdldlkfmmezizoiezozlfkjdlqskALJAMJMJlkvmsldfjmlAM%LA%MLA");
// Version V3 de l'API Google
function getXmlCoordsFromAdress($address){
$coords=array();
$base_url="http://maps.googleapis.com/maps/api/geocode/xml?";
// ajouter ®ion=FR si ambiguité (lieu de la requete pris par défaut)
$request_url = $base_url . "address=" . urlencode($address).'&sensor=false';
$xml = simplexml_load_file($request_url) or die("url not loading");
//print_r($xml);
$coords['lat']=$coords['lon']='';
$coords['status'] = $xml->status ;
if($coords['status']=='OK'){
$coords['lat'] = $xml->result->geometry->location->lat ;
$coords['lon'] = $xml->result->geometry->location->lng ;
}
return $coords;
}
$address = $ad_cp.' '.$ville.','.$pays;
// $address = $ad_ville_ajout.','.$pays;
$address = htmlSpecialChars($address);
$address = urlencode($address);
$coords=getXmlCoordsFromAdress($address);
// $coords=getXmlCoordsFromAdress("22 rue rambuteau, 75003 PARIS, france");
// echo $coords['status']." ".$coords['lat']." ".$coords['lon'];
$lat = $coords['lat'];
$lng = $coords['lon'];
$type = $coords['status']; |
Mon problème c'est que ça fonctionne une fois sur deux..Ou plutôt 2 fois sur trois.
Par exemple, pour l'adresse suivante :
FERME DE LA PRAIRIE, 88450, nancy, France.
Je me retrouvé avec les coordonnées GPS suivantes :
lat = 30.452621
lng = -90.023384
ce qui correspond à un endroit aux états unis...
Pourriez-vous me dire ce qui ne fonctionne pas ?
je me demande si ce n'est pas la différence entre le code postal et la nom de la ville qui fait que l'api google se perd un peu.... En effet, le code postal 88450 correspond à la ville de Vincey et Nancy à le code postal suivant : 54000
peut que l'adresse, je ne devrais tenir compte que du code postal et du pays :
$address = $ad_cp.' ,'.$pays;
ou alors que de la ville et du pays
$address = $ville.','.$pays;
cela éviterait peut-être la confusion. Qu'en pensez-vous ?
Merci d'avance pour votre aide.
Partager