Google Maps de Géocodage à l'État OVER_QUERY_LIMIT
Je comprends que Google casquettes demandes à 2 500 par jour... mais il n'y a aucun moyen sur TERRE que j'ai fait que de nombreuses demandes d'aujourd'hui, et je viens de continuer à être "OVER_QUERY_LIMIT'
$street_no = get_post_meta($prop->ID, 'street_no', true);
$street = get_post_meta($prop->ID, 'street', true);
$street_suffix = get_post_meta($prop->ID, 'street_suffix', true);
$addr = urlencode( $street_no." ".$street." ".$street_suffix." BC Canada" );
$url = 'http://maps.googleapis.com/maps/api/geocode/json?address='.$addr.'&sensor=true';
$json_result = json_decode(file_get_contents($url));
if ( $json_result->status === "OVER_QUERY_LIMIT" ) :
sleep(2);
$json_result = json_decode(file_get_contents($url));
endif;
Comme vous pouvez le voir, si j'ai le statut de OVER_QUERY_LIMIT
- je dire au script de dormir pendant 2 secondes, puis continuer... qui semblait fonctionner à un certain point, ce matin, mais maintenant je ne peux même pas obtenir une seule adresse géocodée.
Je suis à une perte quant à ce à ce point... il fait ma demande tout à fait inutile.
- Où sont les demandes étant fabriqués à partir de? Votre serveur? Votre bureau? Votre téléphone cellulaire? Votre ordinateur hôte partagé sur rackspace.com?
- La demande est faite dans le Cloud et sur les Sites de rackspace, oui. Qui, comme je l'ai commencé à taper ce, il a commencé à faire sens qu'il pourrait y en avoir d'autres sur la même adresse IP que sont l'interrogation de l'api de géocodage.
Vous devez vous connecter pour publier un commentaire.
Le quota est partagée entre tous les utilisateurs de l'adresse IP partagée, de sorte que d'autres sites sur la même IP partagé doit être à l'aide de la Geocoder de Google.
Voir ce fil dans la Google Maps API v2 groupe pour plus d'informations.
BTW - rackspace était une supposition...
Une solution serait d'utiliser le client en fonction de géocodage, mais vérifiez votre utilisation conforme avec les conditions d'utilisation.
La webservice prend désormais en charge une clé, une autre option est d'utiliser une clé dans votre demande, vous obtenez votre propre quota.
Peut-être vous envoyer un trop grand nombre de requêtes par seconde?
Découvrez ce fil:
OVER_QUERY_LIMIT alors que l'aide de google maps
J'ai fait face à un problème similaire avec mon heroku hébergé application java. La façon dont je suis arrivé c'était de mettre en place un micro instance EC2 et installer Dante sur qu'il fonctionne comme un serveur proxy. Alors je viens de route mon gecoding des demandes via le proxy et pourrez faire le plein de 2 000 demandes par jour. Évidemment, il vaut la peine de la mise en cache des résultats de minimiser les appels de l'api de trop. L'instance EC2 est gratuit pour la première année et après que toujours pas chers et vous pouvez toujours l'utiliser pour plus que juste Dante.
J'ai écrit les détails de la façon dont j'ai mis cela ici: À l'aide de Google geocoding de Heroku
J'ai le même problème à faire des appels pour le géocodage RESTE de l'interface à partir d'un serveur sur Heroku (hébergé sur Amazon EC2)
Cela pourrait être fixé si je pouvais utiliser mes Cartes clé API dans la demande et le suivi du nombre d'appels par clé api.
Je suis d'accord que c'est un problème sérieux...
Bing, MapQuest et d'autres ont gratuit Api de géocodage - vous (et moi) devrait ressembler à ceux-ci.
Vous pouvez utiliser un proxy hébergé par le service, comme QuotaGuard qui va s'arrêter vos demandes venant d'une IP partagée afin de ne pas être bloqué par Google lors de l'utilisation de Rackspace/Heroku etc.