Все еще справляется с API JavaScript для Google Maps v3, поэтому, пожалуйста, расскажите мне обо мне. Могу ли добавлять маркеры динамически, как это:Google Maps JavaScript API v3 dynamic infowindow
var oldMarkers = null;
return function(map, locations){
//Clearing markers, if they exist
if(oldMarkers && oldMarkers.length !== 0){
for(var i = 0; i < oldMarkers.length; ++i){
oldMarkers[i].setMap(null);
}
}
//Adding new markers
oldMarkers = [];
for (var i = 0; i < locations.length; i++) {
var newmarker = locations[i];
var myLatLng = new google.maps.LatLng(newmarker[1], newmarker[2]);
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
shape: shape,
title: newmarker[0],
zIndex: newmarker[3],
clickable: true
});
oldMarkers.push(marker);
}
хорошо работает на основе JQuery «нажмите кнопку» функции. Теперь я хотел бы добавить infowindow для каждого маркера. Хорошо у меня есть этот код от Google, который должен/это прежде чем oldMarkers.push(marker)
:
var j = i + 1;
marker.setTitle(j.toString());
attachSecretMessage(marker, j);
и эту функцию:
function attachSecretMessage(marker, number) {
var message = ["This","is","the","secret","message"];
var infowindow = new google.maps.InfoWindow(
{ content: message[number],
size: new google.maps.Size(50,50)
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.open(map,marker);
});
}
Это своего рода работ, в том, что появляется информационное окно для 2-х маркеров, где он должен но не для всех. Это то, что/где я не понимаю: если у меня есть массив, чтобы сделать новые маркеры, как это (только в качестве примера):
var essentials = [
['Marker 1', 12.254181, 12.649962 , 9],
['Marker 2', 12.254181, 12.649962 , 9],
['Marker 3', 12.254181, 12.649962 , 9],
['Marker 4', 12.254181, 12.649962 , 9],
}
Что мне нужно/хотел бы сделать, это добавить ключ массива для содержание InfoWindow так немного, как это:
var essentials = [
['Marker 1', 12.254181, 12.649962 , 9, 'Info Window content']
Как передать newmarker[4]
в InfoWindow?
Заранее благодарен