Мне нужно разместить несколько маркеров на карте Google. Вот проблема: у меня есть массив данных широты / долготы. Мне нужно, чтобы маркер появился на карте для каждой пары широта / долгота. Но это не так. Если я попрошу функцию распечатать координаты вместо того, чтобы отмечать их на карте, это будет работать нормально. Я не получаю сообщение об ошибке в любом случае, поэтому я застрял. На странице отображается карта, но без каких-либо маркеров. Вот код функции, которая должна добавлять маркеры:
//adds markers to the map
function addMarkers(locarray) {
var infowindow = new google.maps.InfoWindow();
var marker, i;
for (i = 0; i < locarray.length; i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng(locarray[i][0], locarray[i][1]),
map: map
});
google.maps.event.addListener(marker, 'click', (function(marker, i) {
return function() {
infowindow.setContent('some words');
infowindow.open(map, marker);
}
})(marker, i));
}
}
Вот функция инициализации (вызывается при загрузке тела):
function initialize() {
geocoder = new google.maps.Geocoder();
var latlng = codeAddress("<?php echo $_POST['postal']; ?>");
var myOptions = {
zoom: 11,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
}
геокодер и map объявлены как глобальные переменные. Функция codeAddress возвращает широту и долготу места, где я хочу центрировать карту, она была протестирована и отлично работает. Это НЕ проблема, я оставляю это для упрощения и не допускаю PHP.
А вот скрипт, который объявляет массив и вызывает функцию addMarkers:
<script type='text/javascript'>
var locations = [
[-33.890542, 151.274856],
[-33.923036, 151.259052],
[-34.028249, 151.157507]
];
addMarkers(locations)
</script>
Кто-нибудь видит что-то не так с этим?