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

Bibliothèques et frameworks PHP Discussion :

[Web Service] Google et geocoding


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 172
    Points : 56
    Points
    56
    Par défaut [Web Service] Google et geocoding
    Je suis désolé je ne sais pas dans quelle rubrique poster...

    J’explique mon problème :

    1ere page / Formulaire ou le client saisie son adresse postale (sous le forme : 12 rue des coquelicots 10000 Troyes France)

    2eme Page / Je récupère mes variables que je concatène pour arriver à : 12+rue+des+coquelicots+10000+troyes+france

    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
     
    // recuperation et formatage adresse
    $adressegooglefinale= $adressegoogle.',+'.$cpvilla.'+'.$villegoogle.',+'.$paysgoogle;
    //declaration key
    $key = "ABQIAAAABT3tx54IksuRwnC--RKadBQGv_9p_FbAYbXgHvMVChSYzDEnThS2JyPfw_HA1t_ifo3GNfFZd-y0tw";
    //on appelle le resultat au format XML
    $address = 'http://maps.google.com/maps/geo?q='.$adressegooglefinale.'&output=xml&key='.$key;
     
    	$page = file_get_contents($address);
     
    	$page = utf8_encode($page);
     
       // Parse the returned XML file
    	$xml = new SimpleXMLElement($page);
    //on extrait les données XML (latitude et longitude)
    	list($longitude, $latitude, $altitude) = explode(",", 
         $xml->Response->Placemark->Point->coordinates);
    	$status = $xml->Response->Status->code; 
    echo $logitude'  '.$latitude;
    Le code marche. Mais... Parfois je recois le geocode 620 (selon la faq google : 15000 requetes/jours ou requete effectuée trop vite ???? . A savoir que je teste peut etre 30 fois et que mon script n'appelle qu'une fois a l'adresse Google.

    Quelqu'un peut il m'éclairer car je sèche....

  2. #2
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Si tu testes 30 fois ton script appelle 30 fois google non ? Ce qui expliquerait pourquoi google te répond que tu fais trop de requête.

  3. #3
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 172
    Points : 56
    Points
    56
    Par défaut
    30 fois ... dans la journée... Je suis loin des 15000 requetes a la journée

  4. #4
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Requête effectuée trop vite ?..

  5. #5
    Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 172
    Points : 56
    Points
    56
    Par défaut
    Aucune idée, comment puis je envoyer cette requete trop vite. Y a t-il un radar sur l'autoroute Google. Non honnetement je ne comprends pas.

  6. #6
    Membre expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Points : 3 972
    Points
    3 972
    Par défaut
    Oui c'est vrai, si tu es seul à utiliser ton formulaire ya aucune raison que tu fasses cette requête trop vite.

    Àprès c'est peut-être un problème qui vient de chez eux.

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour !

    J'ai le même problème. J'utilise l'api google via php (requete HTTP) et apres une 15aine de requete je reçois uniquement un status 620.

    je suis également en hébergement mutualisé OVH.

    Quelqu'un a-t-il trouvé une solution ?

    Merci d'avance

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Slt a tous,

    Effectivement la requete s'est effectuée trop rapidement.
    Et la réponse est... dans la doc Google !
    http://code.google.com/support/bin/a...00&topic=11364

    En gros il faut mettre un délai mini...

    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
    $delay = 0;
     
    $update_result = mysql_query($query);
          if (!$update_result) {
            die("Invalid query: " . mysql_error());
          }
        } else if (strcmp($status, "620") == 0) {
          // sent geocodes too fast
          $delay += 100000;
        } else {
          // failure to geocode
          $geocode_pending = false;
          echo "Address " . $address . " failed to geocoded. ";
          echo "Received status " . $status . "
    \n";
        }
        usleep($delay);

    Moi mon problème est autre : chez OVH tout fonctionne bien, mais sur mon nouvel hébergeur, il semble que SimpleXMLElement() soit désactivée;
    La solution alternative est d'utiliser file_get_contents(), mais ca reviens au même dans mon cas
    donc impossible de geocoder
    Si quelqu'un à la solution...

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Bon ben je me réponds à moi même hein
    Dans le cas ou la fonction file_get_contents() est désactivée sur votre serveur, il faut passer par les bibli curl. Voici un exemple :

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function curl_get_file_contents($URL)
    		{
    			$c = curl_init();
    			curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    			curl_setopt($c, CURLOPT_URL, $URL);
    			$contents = curl_exec($c);
    			curl_close($c);
     
    			if ($contents) return $contents;
    				else return FALSE;
    	}
    Et maintenant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $csv = curl_get_file_contents($request_url) or die("url not loaded");
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $csv = file_get_contents($request_url) or die("url not loading");
    Et voilou, ca fonctionne nickel
    Si ca peut aider...

  10. #10
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2008
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 13
    Points : 12
    Points
    12
    Par défaut je sais kel est ton erreur
    google limite le nombre de requétes max à 15 000/jour si tu dépasse ça tu est limité desormais 620

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 12
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par mdc888 Voir le message
    Slt a tous,

    Effectivement la requete s'est effectuée trop rapidement.
    Et la réponse est... dans la doc Google !
    http://code.google.com/support/bin/a...00&topic=11364

    En gros il faut mettre un délai mini...

    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
    $delay = 0;
     
    $update_result = mysql_query($query);
          if (!$update_result) {
            die("Invalid query: " . mysql_error());
          }
        } else if (strcmp($status, "620") == 0) {
          // sent geocodes too fast
          $delay += 100000;
        } else {
          // failure to geocode
          $geocode_pending = false;
          echo "Address " . $address . " failed to geocoded. ";
          echo "Received status " . $status . "
    \n";
        }
        usleep($delay);

    Moi mon problème est autre : chez OVH tout fonctionne bien, mais sur mon nouvel hébergeur, il semble que SimpleXMLElement() soit désactivée;
    La solution alternative est d'utiliser file_get_contents(), mais ca reviens au même dans mon cas
    donc impossible de geocoder
    Si quelqu'un à la solution...
    bonjour !!!

    Et sur du VBA excel vous auriez pas une petite idée??? j'ai le même problème mais l'application est sous excel et je suis un peu perdue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 05/11/2016, 14h46
  2. [Web Service][Google Maps] Quelles possibilités ?
    Par dolu02 dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 15/06/2010, 11h52
  3. [Web Service][Google Calendar API] Requetes http get
    Par alexandreb3 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 06/05/2010, 15h50
  4. [Web Service][SOAP] PHP & API Google
    Par hamed dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 02/08/2007, 12h07
  5. [Web Service][PHP Script] Google API Search
    Par franck.automaticien dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/07/2007, 11h25

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