Я создал карту Leaflet со списком маркеров из внешнего XML-файла.
Теперь я пытаюсь открыть каждое всплывающее окно маркера из списка ссылок на боковой панели вне карты.Но как мне соединить каждую ссылку, чтобы вызвать маркер и открыть его всплывающее окно?
Вот jsFiddle с тем, что у меня есть до сих пор.Я удалил реальный путь к XML-файлу, поскольку он содержит конфиденциальную информацию.Я думаю, что порт в любом случае не является важным битом.
После цикла XML-кода я вызываю эту функцию - работает нормально.Когда я нажимаю на каждый маркер, я вижу его всплывающее окно с правильным HTML:
function createMarkers(lat, long) {
// Create html for popups
if (lat && long) {
var popupHtml = [
'<h4>',
'' + tmp.name + '',
'</h4>',
'<p>' + tmp.address + '</p>',
'<p>' + tmp.zip + ' ' + tmp.district + '</p>'
].join("");
// Add all markers to the map
var marker = L.marker([lat, long]);
// Add html to popups
marker.bindPopup(popupHtml);
marker.addTo(map);
}
}
Затем я делаю это, чтобы создать список ссылок на боковой панели:
function listUnits() {
// Loop is left out but works.
unit = $('#units');
unit.append("<a class='unitLink' href='#' data-lat='" + tmp.lat + "' data-long='" + tmp.long + "'>" + tmp.name + "</a>");
}
Такпрямо сейчас я застрял в этой функции, где я пытаюсь открыть всплывающее окно от маркера на карте, которая соответствует каждой ссылке:
$('unitLink').on('click', function(e) {
// Here I want to create a function that opens
// the popup at the correct marker on the map when the above links are clicked
map.fire('click');
});
Я должен отметить, что каждое местоположение в xml fie нене имеют уникального идентификатора, но их имена уникальны.