2012-03-09 291 views
1

我一直在使用夢幻般的OpenStreetMap映射庫leaflet.js一段時間了,我剛開始實現this clustering plugin。我已經用當前的項目工作得很好,該項目將不同的圖層加載到地圖上並轉化爲可點擊的側邊欄。使用openPopup()與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

任何想法?

回答

2

是的,我有這個插件相同的問題。所以我開發了我自己的,它應該正確定位彈出窗口。我還在構建一些事件,因此您可以在單擊羣集時運行一些代碼,或者防止縮放級別發生變化。

https://github.com/cavis/leafpile

另外,我工作的一個類似的項目,以你的 - https://github.com/cavis/slidemapper。這是一個jQuery插件,用於在地圖上創建幻燈片。我正在將我的leafpile插件直接集成到它中。