У меня возникли проблемы с внедрением некоторых данных в информационное окно для динамических маркеров, которые я создаю с некоторыми геопозициями из синтаксического анализа.
function initMap(arlat, arlon, arname, artel, ardesc, aradd, arithmisi) {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: {
lat: 37.58,
lng: 23.43
}
});
var iconBase = 'http://sourtouki.gr/';
for (j = 0; j < arithmisi; j++) {
var contentString = '<div id="content">' +
'<div id="siteNotice">' +
'</div>' +
arname[j] +
'<div id="bodyContent">' +
ardesc[j] + "<br>" + aradd[j] + "<br>" + artel[j] + "<br>" +
'</div>' +
'</div>';
var marker = new google.maps.Marker({
position: {
lat: arlat[j],
lng: arlon[j]
},
map: map,
icon: iconBase + 'sourtoukilogo.png',
title: arname[j]
});
}
var infowindow = new google.maps.InfoWindow({
content: contentString
});
marker.addListener('click', function() {
infowindow.open(map, marker);
});
}
Итак, с помощью приведенного выше кода я помещаю некоторые данные, которые у меня есть из некоторых таблиц, на карту. Маркеры создаются в тех местах, где они должны быть, но всякий раз, когда я нажимаю на маркер, открывается только один. Он загружает 17 маркеров, но открывается только первое информационное окно, независимо от того, какой маркер я нажимаю. Также заголовок каждого маркера правильный.
ОБНОВЛЕНИЕ У меня 17 записей на этой карте, 17 географических точек (широта, долгота), 17 имен, 17 описаний и т. д. Таким образом, с помощью приведенного выше кода я получаю все геоинты и помещаю маркеры в правильные позиции в карта. И я хочу, чтобы при щелчке по маркеру имя и адрес отображались в информационном окне. Но я думаю, что я ошибаюсь в цикле for. Хотя я беру все данные такими, какими они должны быть, каждая геоточка имеет правильное имя и т. Д., Но всякий раз, когда я нажимаю на маркер, только первая запись открывает информационное окно, скажем, я нажимаю 3-й маркер на карте, первое информационное окно будет открыто, также происходит, если я нажимаю 12-й маркер. Есть идеи, почему это происходит?
ОБНОВЛЕНИЕ 2
function initMap(arlat, arlon, arname, artel, ardesc, aradd, arithmisi) {
// console.log(arlat.length + arlon.lenght);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 6,
center: {
lat: 37.58,
lng: 23.43
}
});
var iconBase = 'http://sourtouki.gr/';
infowindow = new google.maps.InfoWindow();
for (j = 0; j < arithmisi; j++) {
var marker = new google.maps.Marker({
position: {
lat: arlat[j],
lng: arlon[j]
},
map: map,
icon: iconBase + 'sourtoukilogo.png',
title: arname[j]
});
var contentString = '<div id="content">' +
'<div id="siteNotice">' +
'</div>' +
arname[j] +
'<div id="bodyContent">' +
ardesc[j] + "<br>" + aradd[j] + "<br>" + artel[j] + "<br>" +
'</div>' +
'</div>';
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(contentString);
infowindow.open(map,this);
});
}
}
Во 2-м обновлении я создаю пустое информационное окно вне цикла for, и после того, как я вызываю содержимое внутри, теперь он открывает все информационные окна, но имеет то же содержимое внутри.
Обычно я пробовал много ответов на другие вопросы здесь, в stackoverflow, и ни одно исправление не помогло в моем случае, если бы кто-то мог помочь, я был бы благодарен!
It loads 17 markers
? Все ли данные в 17 маркерах загружаются в один маркер в первой записи? - person Joe Kdw   schedule 03.02.2016position: new google.maps.LatLng(arlat[j][1], arlat[j][2]),
- person Joe Kdw   schedule 03.02.2016