Jestem zajęty skryptem, który zrobi płótno mapy Google na mojej stronie z wieloma znacznikami. Chcę, aby po kliknięciu markera otworzyło się okno informacyjne. Zrobiłem to, a kod jest w tej chwili:Zamknij wszystkie infowindows w Google Maps API v3
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
function addMarker(map, address, title) {
geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
var marker = new google.maps.Marker({
position: results[0].geometry.location,
map: map,
title:title
});
google.maps.event.addListener(marker, 'click', function() {
var infowindow = new google.maps.InfoWindow();
infowindow.setContent('<strong>'+title + '</strong><br />' + address);
infowindow.open(map, marker);
});
} else {
alert("Geocode was not successful for the following reason: " + status);
}
});
}
addMarker(map, 'Address', 'Title');
addMarker(map, 'Address', 'Title');
To działa w 100%. Ale teraz chcę, aby kiedy jedna infowindow była otwarta, a chcesz otworzyć drugą, pierwsza automatycznie się zamyka. Ale nie znalazłem sposobu, aby to zrobić. infowindow.close(); nie pomoże. Czy ktoś ma przykład lub rozwiązanie tego problemu?
Dzięki za to. Zmieniłem swój kod z posiadania wielu okien InfoWindows na taki, który zostanie zamknięty/otwarty na każdym marker.click. Działa jak marzenie. – William
@William, czy mógłbyś opublikować fragment kodu z tego, co zrobiłeś i udostępnić go tutaj? – Carl
@Carl zobacz edycję powyżej. Mam nadzieję, że to pomaga. – William