Google Maps V3 géocodage et des marqueurs de boucle
J'ai quelques problèmes avec mon code, j'ai une liste des aéroports dans une base de données sql, et je veux créer des marqueurs pour chaque 1 de ces aéroports.
Pour l'adresse j'ai eu l'OACI-codes pour chaque aéroport, l'OACI est unique pour chaque aéroport
Je obtenir les données de la Base de données sous forme de tableau
il est enregistré dans "temp" avec une fonction de répartition et avec la boucle for il les obtenir 1 par 1
De géocodage est pas le problème, mais je ne sais pas pourquoi pour le TITRE et le clic de l'événement
il est toujours le dernier à partir de la matrice qui est utilisé.
voici la page, la dernière entrée dans la base de données est ZBAA.
Et tous les marqueurs sont placés au bon endroit, mais le titre est faux :s
http://mizar.lte.lu/~pr1011_meteo/projet/cartemonde4.php
Le problème est avec "adresse" je pense, mais je ne suis pas sûr.
for (var i = 0; i < temp.length; ++i){
var address=temp[i];
geocoder.geocode({ 'address': address}, function(results){
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title:address
});
google.maps.event.addListener(marker, 'click', function() {
window.open ('infomonde.php?icao='+address+'&language=fr', 'Informations météo', config='height=400, width=850, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no')});
});
};
address=temp[i]
semble que vous avez besoin de faire une de fermeture et de passer en address
mais je ne peux pas être sûr sans mettre un jsfiddle démo jusqu'u ne esprit la fourniture de certains champs factices pour adresse/temp tableau?
ce n'est qu'au sujet de la fermeture ? et que voulez-vous dire avec des champs factices? si Tu veux dire par la que pour mettre certains mal entrys j'ai déjà essayé et le géocodage manqué ^^
jetez un oeil à mon exemple et d'explorer la démo. laissez-moi savoir si vous avez des questions et n'hésitez pas à commenter
OriginalL'auteur user657848 | 2011-03-13
Vous devez vous connecter pour publier un commentaire.
Ici est un JSFiddle Démo à l'aide de "dummy", les adresses et d'alerte pour afficher les données correctes associer à chaque marqueur:
Ce que vous avez est un exemple typique de fermeture/problème de portée dans la boucle for. Pour résoudre le problème, utilisez la fermeture de localiser le
temp[i]
variable avant de passer dans de géocodage et de la fonction de rappel à l'intérieur:OriginalL'auteur KJYe.Name
ma conjecture est que
de rappel est d'exécuter dans le même contexte.
essayez d'exécuter du marqueur dans le même contexte. le code ci-dessous est attendre pour tous geocoder par les cheveux. ensuite d'analyser de marqueur.
ps fenêtre.ouvrir si je ne me trompe pas, certains navigateur rejeter popup titre(et peut entraîner l'impossibilité d'ouvrir la fenêtre contextuelle). j'ai toujours laisser vide.
{ adresse: adresse} changement de { adresse: extraction} mon erreur
OriginalL'auteur Bonshington