Я добавляю следующий код к карте Google на мой сайт. Карта содержит много точек, вытягивающих из координат, установленных в бэкэнд WordPress.Google InfoWindow не загружается внутри цикла
Я также хочу включить некоторые статические точки, которые всегда будут оставаться на карте и жестко кодировать их координаты.
Ниже приведен код, который я использую, и происходит то, что код отображает первый маркер, но не инфобокс. Из-за этого код останавливается и не продолжается через цикл for. Вопрос находится на return function()
бит, но я не уверен, как заставить его работать.
var infowindow = new google.maps.InfoWindow({maxWidth: 185});
var setMarker;
var setMarkers = new Array();
var setLocations = [
['<h4>Location1</h4>', 53.4264,-6.2499, '/wp-content/themes/path/to/airport_icon.png'],
['<h4>Location2</h4>', 53.3461,-6.2969, '/wp-content/themes/path/to/train_icon.png'],
['<h4>Location3</h4>', 53.3532,-6.2468, '/wp-content/themes/path/to/train_icon.png'],
['<h4>Location4</h4>', 53.4264,-6.2499, '/wp-content/themes/path/to/dvc_icon.png'],
['<h4>Location5</h4>', 53.4264,-6.2499, '/wp-content/themes/path/to/dvc_icon.png'],
];
for (var i = 0; i < setLocations.length; i++) {
marker = new google.maps.Marker({
map: map,
position: new google.maps.LatLng(setLocations[i][1], setLocations[i][2]),
icon : setLocations[i][3],
});
setMarkers.push(setMarker);
google.maps.event.addListener(setMarker, 'click', (function(setMarker, i) {
return function() {
infowindow.setContent(setLocations[i][0]);
infowindow.open(map, setMarker);
}
})(setMarker, i));
}
Где вы определили 'setMarker'? Вы используете 'marker = новый google.maps.Marker()'. – MrUpsidown
Привет, спасибо за ответ. 'setMarker' находится выше setLocations в моем фрагменте и да, я использую' marker = новый google.maps.Marker() ', он находится в цикле for – damienoneill2001
И поэтому он не работает ... Вы определили' setMarker 'глобально (чего я бы не сделал), но вы не используете его. – MrUpsidown