2017-09-01 57 views
0

我使用的傳單風格層控制,標記集羣和集羣標記層支持插件,以創建在層控制檢查或關閉疊加。 一切工作完美,但我希望地圖爲空時,第一次加載頁面,用戶可以選擇覆蓋他們想打開。我已經嘗試了這種風格圖層控件的內置方法,但它們不起作用。 經過反覆試驗,我已經想通了這個問題是這樣的:隱藏聚集疊加,當頁面加載

var markerClusters = L.markerClusterGroup.layerSupport().addTo(map); 

//monday groups 
var mFood = L.layerGroup().addTo(markerClusters); 
var mDrink = L.layerGroup().addTo(markerClusters); 
var mEntertainment= L.layerGroup().addTo(markerClusters); 

如果我不將markerClusterGroup添加到地圖,重載不會出現,直到用戶在圖層控制檢查它們。但是,這意味着標記不會聚類。我覺得這個問題可以通過if..then ..循環來解決,但我不知道如何創建它。 例如,如果選中了疊加層,請將markerClusters添加到地圖。我擔心,雖然這樣的措辭意味着所有疊加都會被選中/ markerClusters出現,我只希望檢查疊加出現,並在必要時進行聚集。

回答

0

作爲一般規則,你的覆蓋將在地圖上,只要你使用myOverlay.addTo(map)addTo(group)其中group本身已經在地圖上。

當你想通了,這是你避免增加你的地圖markerCluters層的支持會發生什麼。但是,如你所描述的那樣,你的覆蓋層存在問題。

要解決這些問題,請查看圖層支持checkIn方法:它「註冊」覆蓋圖以便稍後羣集,但不會立即將其添加到羣集組中。

所以你還是該層支持組添加到您的地圖,但你查一下你的疊加,使他們現在不顯示在地圖上,但是當用戶選擇他們以後會出現聚集。

+0

謝謝!這是我見過的圖層支持的「檢入」方法的最佳解釋。我以前嘗試過,但我一定是將支票放在錯誤的地方。有效! – Ailis

+0

所以我遇到了問題,只有第一個列出來「登入」的變量是集羣。我認爲它昨天工作,但今天不是。我是否需要單獨檢查每個圖層組,還是可以以某種方式列出它們?這是我現在的方式:「markerClusters.checkIn(group1,group2,group3)」刪除逗號會停止渲染地圖。 – Ailis