Как открыть всплывающее окно по ссылке вне карты Leaflet - PullRequest
0 голосов
/ 17 октября 2018

Я создал карту 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 нене имеют уникального идентификатора, но их имена уникальны.

...