IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

API google et mauvaise géolocalisation


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut API google et mauvaise géolocalisation
    Bonjour à tous,

    j'ai l'api google suivante qui me permet d'obtenir les coordonnées GPS à partir d'une adresse :

    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
    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 &region=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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $address = $ad_cp.' ,'.$pays;
    ou alors que de la ville et du pays

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $address = $ville.','.$pays;
    cela éviterait peut-être la confusion. Qu'en pensez-vous ?



    Merci d'avance pour votre aide.

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 274
    Points
    3 274
    Par défaut
    Tu peux déjà restreindre les résultats avec le paramètre region https://developers.google.com/maps/d...ion/geocoding/

    Sinon, ben y a pas de solution miracle, faut faire des tests et trouver la meilleure combinaison qui va bien.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Membre averti
    Inscrit en
    Mars 2004
    Messages
    1 907
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1 907
    Points : 411
    Points
    411
    Par défaut
    Ha oui ça m'intéresse. Mais comment obtenir ce code région ?
    Il y a bien la fonction suivante,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    $region = geoip_region_by_name('www.example.com');
    if ($region) {
    	print_r($region);
    }
    ?>
    Mais elle ne donne pas le code région attendu par l'API google...

Discussions similaires

  1. L'API Google de géolocalisation pour Android
    Par mhyd010 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 29/01/2014, 16h28
  2. [Google Maps] IE6 refuse d'ouvrir ma page
    Par Shyboy dans le forum APIs Google
    Réponses: 5
    Dernier message: 03/10/2006, 08h47
  3. C# utilisation api google
    Par mohican13 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/07/2006, 08h03
  4. api google
    Par zouha dans le forum API standards et tierces
    Réponses: 5
    Dernier message: 29/04/2006, 12h21
  5. Webservice API Google
    Par mchicoix dans le forum XMLRAD
    Réponses: 3
    Dernier message: 20/02/2005, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo