Я уже некоторое время использую фантастическую библиотеку отображения OpenStreetMap leaflet.js, и я только начал реализовывать этот плагин кластеризации . У меня все отлично работает с текущим проектом, который загружает разные слои на карту и в интерактивную боковую панель.
Единственная проблема заключается в том, что, если я щелкаю по элементу боковой панели и соответствующий маркер находится в объекте кластеризации, я получаю сообщение об ошибке. Я справился с этим, проверив наличие ошибки (используя try / catch) и увеличив масштаб, чтобы слой был виден, как показано ниже:
$('.item').click(function() {
currentlayer = this.id;
...
try {
geojson._layers[currentlayer].openPopup();
} catch(e) {
map.setView(geojson._layers[currentlayer]._latlng, 16);
geojson._layers[currentlayer].openPopup();
}
...
return false;
});
Единственная проблема заключается в том, что я получаю ту же ошибку при попытке запустить метод openPopup () после масштабирования, хотя, если я снова нажимаю на боковую панель, всплывающее окно показывает нормально. Вы можете увидеть это в действии здесь:
http://www2.lichfielddc.gov.uk/myarea/map2.php
Есть идеи?