Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/08/2011, 12h32   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2009
Messages : 79
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 79
Points : 12
Points : 12
Par défaut probleme avec le geocoding google

Bonjour
J'ai une petite question au sujet du geocoding de google.
voici le code que j'utilise pour le geocoding :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
// Desired address
 $address_repl = str_replace(' ','+',CalculateTITLEFromString($adresse_gmap));
$address = "http://maps.googleapis.com/maps/api/geocode/xml?address=".$address_repl.",+FRANCE,+FR&sensor=true";
 
// Retrieve the URL contents
$page = file_get_contents($address);
 // Parse the returned XML file
$xml = new SimpleXMLElement($page);
// Output the coordinates
$latitude_sql = $xml->result->geometry->location->lat;
$longitude_sql = $xml->result->geometry->location->lng;
Lorsque je développe mon admin en local, la recherche des latitudes et longitudes se déroule sans problème.

Mais lorsque je mets en place mon site, le geocoding ne fonctionne plus.
Le code n'est appeler qu'une seule fois, pourtant lorsque je fais un echo sur la variable $page, celle ci affiche OVER_QUERY_LIMIT.
Pourtant, si je fait un echo de la variable $address, et que je mets la réponse dans mon navigateur, celui ci m'affiche bien tout le xml voulu pour récupérer les valeurs souhaitées.

auriez vous une idée du pourquoi du comment en local je n'ai pas d'erreur et sur mon serveur, j'ai cette erreur OVER_QUERY_LIMIT ?

Merci d'avance
luffyfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2011, 15h12   #2
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Bonjour,

Certainement que vous faite trop d'appel en même temps et étant donné qu'il y a une limitation, il vous envoi une erreur

Cf :

http://guilhemmarty.com/2010/08/evit...i-google-maps/
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 09h50   #3
Candidat au titre de Membre du Club
 
Inscription : mars 2009
Messages : 79
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 79
Points : 12
Points : 12
Justement non,
Cela se produits dès la première demande.
Hors en local, je n'ai pas ce problème, celui n'apparait qu'une fois la mise en ligne du site...
Je connaissais cette limitation de requête mais pas dès la première demande, et c'est là que je ne comprends pas...

J'étais tomber sur ton exemple lors de mes recherches, mais lui, il fait une boucle FOR, dans mon code, il n'y en a pas, cela ne concerne qu'une seule demande, donc je ne peux pas dépasser cette limite.
luffyfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 09h55   #4
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Citation:
Envoyé par luffyfr Voir le message
Justement non,
Cela se produits dès la première demande.
Hors en local, je n'ai pas ce problème, celui n'apparait qu'une fois la mise en ligne du site...
Je connaissais cette limitation de requête mais pas dès la première demande, et c'est là que je ne comprends pas...

J'étais tomber sur ton exemple lors de mes recherches, mais lui, il fait une boucle FOR, dans mon code, il n'y en a pas, cela ne concerne qu'une seule demande, donc je ne peux pas dépasser cette limite.
Effectivement, si tu ne boucle pas ou que tu ne te trouves pas dans une boucle il ne devrait pas y avoir ce problème.
Est-ce qu'a partir du code poster je peux faire un essai de mon côté ?
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 10h06   #5
Candidat au titre de Membre du Club
 
Inscription : mars 2009
Messages : 79
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 79
Points : 12
Points : 12
je pense que oui.
Il suffit d'initialiser "$adresse_gmap" par une adresse de type "rue intel ville" et de faire un echo des deux valeurs.
Il faut aussi enlever la fonction CalculateTITLEFromString qui sert a retirer les accents et les majuscules de l'adresse.
cela devrait fonctionner.
luffyfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 10h44   #6
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
J'ai essayé ce code et il est fonctionnel :

Code :
1
2
3
4
5
6
7
8
9
 
<?php
define('GOOGLE_API_KEY', 'ABQIAAAAYBdSg3wc4OEXNK-iUL2PxBRwFw_JcJOrZ9KYJ8SNmyhBS5-sTRRKA6j8tgO8T6EHMIY26N2_H6aZPg');
$wsurl = 'http://maps.google.com/maps/geo?q=%s&output=csv&key=%s';
$location = 'Paris, France';
$data = explode(',', file_get_contents(sprintf($wsurl, urlencode($location), GOOGLE_API_KEY)));
$coord = 200 === (int)$data[0] ? array((float)$data[2], (float)$data[3]) : null;
var_dump($coord);
?>
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 11h47   #7
Candidat au titre de Membre du Club
 
Inscription : mars 2009
Messages : 79
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 79
Points : 12
Points : 12
Ce que je ne comprend c'est pourquoi mon code fonctionne lorsque je travaille sur un serveur en local (sur wamp par exemple)
mais celui-ci mets l'erreur OVER_QUERY_LIMIT dés que je passe en ligne.

Merci pour ton aide heretik25, cela fonctionne, par contre j'ai retirer de ton code la clé API qui n'est plus nécessaire.

Enfin, si quelqu'un a une réponse a ma question, cela m'aiderais de savoir le pourquoi du comment ^^
luffyfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/08/2011, 11h51   #8
Membre actif
 
Homme
Inscription : avril 2011
Messages : 426
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : avril 2011
Messages : 426
Points : 171
Points : 171
Citation:
Envoyé par luffyfr Voir le message
Ce que je ne comprend c'est pourquoi mon code fonctionne lorsque je travaille sur un serveur en local (sur wamp par exemple)
mais celui-ci mets l'erreur OVER_QUERY_LIMIT dés que je passe en ligne.

Merci pour ton aide heretik25, cela fonctionne, par contre j'ai retirer de ton code la clé API qui n'est plus nécessaire.

Enfin, si quelqu'un a une réponse a ma question, cela m'aiderais de savoir le pourquoi du comment ^^
Ok, c'est tout bon dans ce cas, je pense qu'un jour ce code me sera aussi utile mais peut-être que j'utiliserai son concurrent libre, à savoir : Geonames.
heretik25 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 16h10   #9
Candidat au titre de Membre du Club
 
Inscription : mars 2009
Messages : 79
Détails du profil
Informations forums :
Inscription : mars 2009
Messages : 79
Points : 12
Points : 12
Alors la, je ne comprends vraiment plus.
Lorsque nous avions fait les tests en aout, le code fourni par heretik25 fonctionnait, 1 mois plus tard son code ne fonctionne plus.
=>$data me retourne 620,0,0,0

alors que si je prends l'url générée et que je l'affiche dans mon navigateur,
=> $data me retourne 200,6,50.6385456,3.0556875

Je ne comprends vraiment pas pourquoi le code ne fonctionne plus, j'ajoute que mon ancien code fonctionne sur un autre site mais pas sur le nouveau d'ou ma question en août, de plus, la nouvelle admin n'a pas été encore utilisé, l'over_query_limit s'affiche avec mon ancien code (de même un copier/colle de l'adresse générée par le code retourne bien l'xml demandé avec toutes les infos nécessaire).

J'ai essayé de générée un API key au cas ou, mais normalement plus besoin depuis la version 3 de l'api. mais cela ne change rien.

Pourquoi cela ne fonctionne t-il plus d'après vous ???
luffyfr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h11.


 
 
 
 
Partenaires

Hébergement Web