Comment fermer tous les Infowindows ouverts à l'aide de jQuery-Ui-Map (Google Map V3 Plugin pour jQuery)
-
14-11-2019 - |
Question
L'utilisateur a des marqueurs chargés en fonction de l'endroit où il sélectionne son emplacement. Les marqueurs sont effacés lorsqu'un nouvel emplacement est choisi. Si j'ai un infoindow ouvert lorsque je nettoie les marqueurs, il reste ouvert même si le marqueur disparaît. Je veux que tout info-window ouvert se ferme lorsque les données sont rafraîchies.
Mes détails d'implémentation:
j'utilise jQuery-ui-map Pour améliorer mon implémentation Google Maps avec jQuery.
J'attache un événement de clic lors de la création des marqueurs avec le code suivant (FYI: J'ai retiré tous les détails spécifiques et les ai remplacés par des génériques).
$('#map-canvas').gmap('addMarker', {
'position' : new google.maps.LatLng(latitude, longitude),
'title' : myTitle,
'icon' : myImage,
'shadow' : myShadowImage
}).click(function() {
$('#map-canvas').gmap('openInfoWindow', {
'content' : displayContent(myObject)
}, this);
});
L'option openInfoWindow
Ne renvoie rien, donc le stockage de l'objet Infowindow dans un tableau pour le fermer plus tard ne ressemble pas à une option viable.
Est-ce que quelqu'un sait comment y parvenir en utilisant la bibliothèque jQuery-Ui-Map? Je ne vois pas de CloseInfowindow répertorié dans la documentation de l'API.
La solution
jQuery-Ui-Map V.Beta
var theInfoWindowObject = $('#map_canvas').gmap('get', 'iw');
theInfoWindowObject.close();
jQuery-ui-Map V rc 1
$('#map_canvas').gmap('closeInfoWindow');