Fermer une infowindows quand une autre s'ouvre
Bonjour à tous.
J'aurais besoin de votre aide pour finaliser ce code qui permet d'afficher automatiquement une infowindow pour un marker placé par une recherche de lieu avec autocomplétion.
La fonction suivante permet de faire ceci mais le problème est que quand un nouveau marker est crée par une nouvelle recherche, l'infowindow précèdente reste ouverte et se place sous la nouvelle infowindow du nouveau marker.
J'aurais donc besoin que quand une nouvelle infowindow s'ouvre, l'ancienne se ferme automatiquement.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var place = autocomplete.getPlace();
if (!place.geometry) {
// Informer l'utilisateur que le lieu n'a pas ete trouve.
input.className = 'notfound';
return;
}
// Si le lieu existe il est place sur la map.
if (place.geometry.viewport) {
map.fitBounds(place.geometry.viewport);
} else {
map.setCenter(place.geometry.location);
map.setZoom(16);
}
var contentString = '<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<div id="bodyContent">'+
'<b>'+
place.formatted_address +
'</b>'+
'<br>'+
'<p>Latitude / Longitude:<br>' +
place.geometry.location +
'<br>'+
'<a href="'+
place.url+
'&ie=UTF8&t=m&z=14&vpsrc=0" '+
'target="_blank">'+
'Adresse URL du lieu'+
'</a>'+
'<br>'+
'</div>'+
'</div>';
var infowindow = new google.maps.InfoWindow({
content: contentString
});
infowindow.open(map,marker);
// On defini une icone personalisee pour la recherche rapide
var image = 'images/crosshairs.png';
marker.setIcon(image);
marker.setPosition(place.geometry.location);
// On initialise StreetView et on affiche le resultat de la recherche rapide dans le div 'div_streetview'
var optionsPanoramiqueStreetView = {
position: place.geometry.location,
pov: {
heading: 0,
pitch: 0,
zoom: 0,
}
};
var panoramiqueStreetView = new google.maps.StreetViewPanorama(document.getElementById('div_streetview'), optionsPanoramiqueStreetView);
map.setStreetView(panoramiqueStreetView);
}); |
Merci de votre aide