2012-03-09 15 views
1

Я использую фантастическую библиотеку сопоставлений OpenStreetMap leaflet.js некоторое время, и я только начал внедрять this clustering plugin. У меня это нормально работает с текущим проектом, который загружает разные слои на карту и в интерактивную боковую панель.Использование openPopup() с Leaflet.js + Кластеризация

Единственная проблема в том, что если я нажму на элемент боковой панели и соответствующий маркер находится в объекте кластеризации, я получаю сообщение об ошибке. Я получил вокруг этого проверка на наличие ошибок (с помощью TRY/поймать) и масштабирование, так что слой виден, как показано ниже:

$('.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

Любые идеи?

ответ

2

Да, у меня была такая же проблема с этим плагином. Поэтому я разработал свой собственный, который должен правильно расположить всплывающие окна. Я также создаю некоторые события, поэтому вы можете запускать некоторый код при щелчке по кластеру или предотвращать изменение уровня масштабирования.

https://github.com/cavis/leafpile

Кроме того, я работаю над аналогичным проектом с вашим - https://github.com/cavis/slidemapper. Это плагин jquery для создания слайд-шоу, следующего за ним на карте. Я работаю над интеграцией своего плагина leafpile прямо в него.

 Смежные вопросы

  • Нет связанных вопросов^_^