0

J'essaie d'utiliser l'API Google Maps v3 de Biostall pour tracer une série d'adresses, mais lorsque j'essaie de taper une adresse, le Lon Lat produit est 0, 0 à chaque fois . Cela ne fonctionne que si je mets spécifiquement la longitude et la latitude de chaque adresse. Même les entrées que Biostall a utilisées sur son exemple de vidéo et de documentation ne fonctionnent pas. J'essaie également d'utiliser la fonction geocodeCaching, s'il vous plaît aider.Codeigniter Google Maps API V3 Le géocodage ne fonctionne pas

$this->load->library('googlemaps'); 

$config = array(); 
$config['zoom'] = 'auto'; 
$config['geocodeCaching'] = TRUE; 
$config['region'] = 'US'; 
$config['sensor'] = FALSE; 
$this->googlemaps->initialize($config); 

$marker = array(); 
$marker['position'] = '37.429, -122.1519'; 
$marker['animation'] = 'DROP'; 
$this->googlemaps->add_marker($marker); 

$marker = array(); 
$marker['position'] = '1600 Amphitheatre Parkway in Mountain View, Santa Clara County, California United States'; 
$marker['animation'] = 'DROP'; 
$this->googlemaps->add_marker($marker); 

$data['map'] = $this->googlemaps->create_map(); 

echo print_r($data['map']['markers']); 

La sortie de marqueur:

Array ([marker_0] => Array ([latitude] => 37,429 [longitude] => -122,1519) [marker_1] => Array ([ latitude] => 0 [longitude] => 0)) 1

Ceci est la carte produite:

La suggestion de

BIOSTALL ce émis: Lat: 0 Lng: 0 Err: OVER_QUERY_LIMIT data_location: http://maps.google.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway+in+Mountain+View%2C+Santa+Clara+County%2C+California+United+States&sensor=false&region=US

Répondre

1

Merci pour avoir utilisé ma bibliothèque. J'ai quelques suggestions:

1) essayez d'ajouter ', United States' à la fin de la position du marqueur.

2) Je crois qu'il existe un paramètre 'région' que vous pouvez définir sur la carte. Essayez de définir ceci sur 'US'.

3) si cela ne fonctionne toujours pas, essayez d'aller dans la bibliothèque et trouvez la fonction get_lat_lon_from_address(), puis affichez le résultat de la requête d'URL.

J'espère que cela aide. Je vais bientôt ajouter un mode de débogage qui devrait aider avec des problèmes comme celui-ci. Permettez-moi de savoir si d'autres questions bien :)

Steve

+0

Merci @BIOSTALL, toujours pas de chance cependant. J'ai essayé d'ajouter dans le code de la région et «États-Unis» à la fin de l'adresse comme vous l'avez dit et toujours le même résultat. Lorsque j'imprime le code d'erreur au bas de l'adresse get_lat_lon_from_address(), il lit OVER_QUERY_LIMIT. Lorsque je copie et passe le lien dans mon navigateur, je récupère les données json de google. Je ne fais que 1 demande de géocodage, pourquoi cela se passe-t-il? – MikeTrottman

1

Quand il donne OVER_QUERY_LIMIT avec PHP, il peut signifier que votre adresse IP est bloquée. Surtout quand vous essayez trop d'adresses et aussi quand vous n'attendez pas assez entre chaque requête. Essayez d'ajouter une pause entre chaque requête, mais très probablement vous pouvez seulement attendre que l'IP soit à nouveau libre (très ennuyeux) ou vous pouvez essayer un JavaScript côté client. Je ne connais pas la raison exacte mais le reverse geocode fonctionne mieux côté client et avec JavaScript. Vous pouvez également obtenir le service payant de Google ou utiliser OpenStreetMap.

+0

Merci! J'ai attendu un peu plus longtemps et maintenant ça marche. Je vais devoir garder un oeil sur cette fonctionnalité pour m'assurer que cela ne se reproduira plus pendant que mes clients l'utilisent. Soit cela ou inscrivez-vous à l'API Google Maps for Business. – MikeTrottman

+0

Cest cher 10k par an? – Bytemain

+0

Sheesh, c'est vraiment ça? Aie! – MikeTrottman

Questions connexes