В этом руководстве по Mapbox показано как создать список и переместить карту к маркеру карты после щелчка по элементу списка.
Вот как элемент списка обрабатывает событие щелчка на основе определенного маркера:
// Iterate through each feature layer item, build a
// marker menu item and enable a click event that pans to + opens
// a marker that's associated to the marker item.
myLayer.eachLayer(function(marker) {
var link = info.appendChild(document.createElement('a'));
link.className = 'item';
link.href = '#';
// Populate content from each markers object.
link.innerHTML = marker.feature.properties.title +
'<br /><small>' + marker.feature.properties.description + '</small>';
link.onclick = function() {
if (/active/.test(this.className)) {
this.className = this.className.replace(/active/, '').replace(/\s\s*$/, '');
} else {
var siblings = info.getElementsByTagName('a');
for (var i = 0; i < siblings.length; i++) {
siblings[i].className = siblings[i].className
.replace(/active/, '').replace(/\s\s*$/, '');
};
this.className += ' active';
// When a menu item is clicked, animate the map to center
// its associated marker and open its popup.
map.panTo(marker.getLatLng());
marker.openPopup();
}
return false;
};
});
Как можно сделать обратное? Прямо сейчас, если вы нажмете непосредственно на маркер, появится всплывающее окно, но элементы списка не будут обновлены до выбранного маркера. Я не совсем уверен, как привязать событие щелчка к маркерам карты, которые соответствуют определенному элементу списка.