J'ai travaillé sur un projet de mappage pour afficher les commandes de service pour une entreprise de services publics, mais j'ai quelques problèmes pour obtenir la numérotation sur mes broches et les boîtes d'information. Ce qui suit est un petit segment de la page avec laquelle je travaille pour démontrer le problème. Une fois que vous l'ouvrez, il y a un lien en haut pour "Test Pins" qui rendra 5 pushpins à l'écran. Je crois que le problème réside dans l'ordre des événements. Les pins sont générés par des recherches d'adresse en utilisant map.Find() dans une fonction appelée AddPushpinByAddress(). Le problème est que tous les 5 appels à AddPushpinByAddress() sont en train de tirer avant de commencer à déclencher les fonctions de rappel à partir du paramètre final de Map.Find() - qui est l'endroit où les pins sont réellement créés. Le résultat final est que toutes les 5 broches dans l'exemple sont rendues avec le numéro de broche, le titre et la description de la dernière broche rendue. Aucune suggestion?Virtual Earth ajoutant des punaises par adresse - événements déclenchés
Répondre
l'utilisation d'une variable "var" locale ou globale ou d'instances multiples a échoué. J'ai finalement abandonné et utilisé "setTimeout()" en javascript pour forcer un délai et permettre à la terre virtuelle de trouver l'emplacement avant qu'elle ne reçoive une entrée sur la prochaine punaise. Je suis sûr qu'il existe de meilleures méthodes, mais pratique au nom du progrès a gagné de la perfection/précision.
Vous avez tout à fait raison. Puisque vous utilisez un global pour conserver l'ID (et toutes les autres valeurs) de la broche quand il va l'écrire, vous obtiendrez juste la dernière valeur.
Je créer une nouvelle instance de la punaise dans votre fonction AddPushpinByAddress et passer cette punaise au rappel pour avoir les propriétés définies. J'ai un code similaire si vous en avez vraiment besoin, mais le fait de déplacer les globals et d'utiliser soit l'objet pushpin (ou la création de votre propre objet) que vous pouvez passer s'occupera de ce problème.