Я создаю свою собственную карту gooogle и хочу, чтобы на моей карте было 2 функции; показать/скрыть маркер и показать информационное окно (при нажатии на маркер)Показать/скрыть маркер И использовать информационное окно google maps API v3
Однако я могу делать только одно. Если я хочу показать/скрыть маркер, я должен нажать массив, но тогда он не сможет отобразить информационное окно для отдельного маркера, так что я сейчас в ситуации catch-22 ... Надеюсь, один из вас парни могут подталкивать меня в правильном направлении :)
Вот код, который я до сих пор (показать/скрыть маркер):
var map;
var otherMarker = [];
var other = [{lat: 52.5001054,lng: 5.0578416,name: 'Volendam',content: 'Fishing village',icon: '../css/images/marker1.png'},{}];
function initialize() {
var myOptions = {
backgroundColor: '#FFFFF',
zoom: 7,
center: new google.maps.LatLng(52.2129919 , 5.2793703),
mapTypeId: google.maps.MapTypeId.ROADMAP,
streetViewControl: false,
mapTypeControl: false
};
var map_canvas = document.getElementById("map_canvas");
map = new google.maps.Map(map_canvas, myOptions);
var infowindow = new google.maps.InfoWindow();
for (var i = 0; i < other.length; i++) {
otherMarker.push(new google.maps.Marker({
position: new google.maps.LatLng(other[i].lat, other[i].lng),
map: map,
icon: other[i].icon
}));
google.maps.event.addListener(otherMarker, 'click', (function(otherMarker, i) {
return function() {
infowindow.setContent('<div id="content">'+
'<div id="siteNotice">'+
'</div>'+
'<h1 id="firstHeading" class="firstHeading">'+other[i].name+'</h1>'+
'<div id="bodyContent">'+
'<p>'+other[i].content+'</p>'+
'</div>'+
'</div>');
infowindow.open(map, otherMarker);
}
})(otherMarker, i));
}
}
function hideOther(){
for(var i=0; i<otherMarker.length; i++){
otherMarker[i].setVisible(false);
}
}
window.onload = initialize;
чтобы показать InfoWindow я не заталкивать массив и заменить для цикла с этим кодом:
for (var i = 0; i < other.length; i++) {
otherMarker= new google.maps.Marker({
position: new google.maps.LatLng(other[i].lat, other[i].lng),
map: map,
icon: other[i].icon
});