2010-05-31 5 views
1

ma question est la suivante: Qu'est-ce que GEvent.addListener (map, "click" function() {...}) retourne dans la fonction de rappel? Je ne trouve aucune information dans la référence GMaps, pouvez-vous m'en montrer? La seule chose que j'ai découvert est qu'il y a deux paramètres, "overlay" et "latLng" qui sont passés. Le nom de ces paramètres ne devrait pas être intéressant, n'est-ce pas? Je pourrais aussi les nommer "foo" et "bar" autant que je sache. Mais le paramètre "overlay" semble être vide quand même?GEvent.addListener (...) return?

J'ai aussi des problèmes qui passent ces deux paramètres directement dans une fonction de rappel je me qui ressemble créés que ...

GEvent.addListener(gmap, "click", generateMarker(overlay, latLng)); 

... au lieu d'écrire ce qui suit, ce qui fonctionne réellement bien.

GEvent.addListener(gmap, "click", function(overlay, latLng) { 
     generateMarker(overlay, latLng); 
    }); 

Répondre

4

Votre premier exemple tente de passer le résultat d'appeler generateMarker(overlay, latLng) à addListener qui bien sûr ne va pas au travail. Le deuxième exemple est la bonne façon de le faire.

Vous pouvez nommer les paramètres transmis à votre callback comme vous le souhaitez. Les superpositions sont des objets sur la carte qui sont liés aux coordonnées latitude/longitude, donc je suppose que overlay est l'objet sur lequel on a cliqué. Cependant, il semble que la version 3 de l'API passe un objet événement au rappel:

google.maps.event.addListener(map, 'click', function(event) { 
    placeMarker(event.latLng); 
}); 

S'il n'y a rien dans la documentation à ce sujet, vous pouvez toujours inspecter event en utilisant Firebug.