Bonjour à tous,

J'utilise l'API Google Maps et j'ai 2 event à déclencher, dans le premier (lorsqu'on choisi une adresse venant de la librairie Autocomplete de GMaps) j'affiche un marqueur à l'adresse en question. Le 2ème c'est lors du click sur le marqueur j'ajoute une InfoWindow avec le nom de la ville de dans.

Voici le code en question :

[code]

var defaultLocation = new google.maps.LatLng(49.443232, 1.099971);

var map = new google.maps.Map(document.getElementById("map"), {
center: defaultLocation,
zoom: 8
});

var input = document.getElementById('searchTextField');

var autocomplete = new google.maps.places.Autocomplete(input, {
types: ["geocode"]
});
autocomplete.bindTo('bounds', map);

google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();

if(!place.geometry) {
    return;
}

if(place.geometry.location) {
    map.setCenter(place.geometry.location);
    map.setZoom(8);
    var markerSearch = new google.maps.Marker({
        position: place.geometry.location,
        map: map
    });

    var infoWindowSearch = new google.maps.InfoWindow({
        content: ''+ place.formatted_address +''
    });
}

});

google.maps.event.addListener(markerSearch, 'click', function(){
infoWindowSearch.open(map, markerSearch);
});
[/code]

Le soucis c'est que dans l'event click je n'ai pas accès à markerSearch car il est déclaré dans l'autre event. Donc si je met mon event click dans le callback de l'event place_changed ça fonctionne mais je voudrais séparer les event le plus possible. Et je déclare le marker et l'infoWindow ici car à chaque recherche je veux un nouveau marqueur et non le remplacé par le précédent, sinon je voulais qu'un marqueur alors oui j'aurais déclaré mon markerSearch et infoWindowSearch avant de déclarer les events.

C'est possible que j'ai accès à markerSearch mettre l'event dans le premier event ?

Merci d'avance.

Aucune réponse