Вот демоверсия jsfiddle :
Дайте мне знать, если вам нужна помощь в понимании
Global Scope Array для отслеживания всех ваших очков и маркеров:
var map = null;
var markerArray = []; //create a global array to store markers
var myPoints = [[43.65654, -79.90138, 'ABC'],[43.91892, -78.89231, 'DEF'],[43.82589, -79.10040, 'GHA']]; //create global array to store points
внутри функции инициализации в основном перебирает глобальный массив myPoints и на его основе создает маркер. Таким образом, чтобы добавить больше маркера, вы просто передаете массиву myPoints значения lat, lng и html:
// Add markers to the map
// Set up based on the number of points in myPoints array
for(var i=0; i<myPoints.length; i++){
createMarker(new google.maps.LatLng(myPoints[i][0], myPoints[i][1]), myPoints[i][2]);
}
mc.addMarkers(markerArray , true);
В функции creatMarker мы изменили следующее, поместив локальный маркер var в глобальный массив markerArray:
function createMarker(latlng, html) {
var contentString = html;
var marker = new google.maps.Marker({
position: latlng,
map: map,
zIndex: Math.round(latlng.lat() * -100000) << 5
});
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map, marker);
});
markerArray.push(marker); //push local var marker into global array
}
Теперь, если вам нужно добавить новый маркер, все, что вам нужно сделать, это добавить lat, lng и html в качестве подмассива в массив myPoints:
var myPoints = [[43.65654, -79.90138, 'ABC'],[43.91892, -78.89231, 'DEF'],[43.82589, -79.10040, 'GHA'], [10, -22, 'MY NEW MARKER']];
так что это похоже на [lat, lng, html]