2017-09-01 4 views
0

Ich benutze die Layer-Steuerelement-, Marker-Cluster- und Marker-Cluster-Layer-Plug-ins für die Erstellung von Overlays, die Sie in den Layer-Steuerelementen aktivieren oder deaktivieren. Alles funktioniert einwandfrei, außer dass die Karte leer sein soll, wenn die Seite geladen wird, und der Benutzer auswählen kann, welche Überlagerungen er aktivieren möchte. Ich habe die eingebauten Methoden für das gestylte Layer-Steuerelement ausprobiert, aber sie funktionieren nicht. Durch Versuch und Irrtum ich das Problem herausgefunden haben, ist dies:Ausblenden von gruppierten Überlagerungen aus der Karte, wenn die Seite geladen wird

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); 

wenn ich die Overlays erscheinen nicht die markerClusterGroup auf der Karte hinzufügen, nicht, bis der Benutzer sie in der Schichtkontrolle überprüft. Dies bedeutet jedoch, dass die Marker nicht gruppieren. Ich habe das Gefühl, das Problem könnte mit einer if..then .. Schleife gelöst werden, aber ich bin mir nicht sicher, wie ich das schaffen soll. Wenn beispielsweise ein Overlay aktiviert ist, fügen Sie die markerClusters zur Map hinzu. Ich sorge mich jedoch, dass das, wenn es so formuliert wird, bedeuten würde, dass alle Überlagerungen geprüft werden/markerClusters erscheinen und ich will nur das überprüfte Überlagerung erscheinen und bei Bedarf geclustert werden.

Antwort

0

In der Regel werden Ihre Overlays auf der Karte angezeigt, sobald Sie myOverlay.addTo(map) oder addTo(group) verwenden, wobei group selbst bereits auf der Karte ist.

Wie Sie herausgefunden haben, passiert genau das, wenn Sie vermeiden, Ihre markerCluters Layer-Unterstützung der Karte hinzuzufügen. Aber dann haben Sie Probleme mit Ihren Overlays, während Sie beschreiben. Um dieses Problem zu umgehen, sehen Sie sich die Layer-Unterstützung an: checkIn Methode: Sie "registriert" ein Overlay, das später gruppiert werden soll, ohne es jedoch sofort in die Clustergruppe einzufügen.

Daher fügen Sie der Karte immer noch die Layer-Unterstützungsgruppe hinzu, aber Sie checken nur Ihre Overlays ein, damit sie nicht auf der Karte angezeigt werden, sondern gruppiert, wenn der Benutzer sie später auswählt.

+0

Vielen Dank! Das war die beste Erklärung für die "Check-In" -Methode der Layer-Unterstützung, die ich gesehen habe. Ich habe es schon einmal ausprobiert, aber ich muss den Scheck an der falschen Stelle platziert haben. Es funktionierte! – Ailis

+0

Ich habe also ein Problem, bei dem nur die erste Variable, die ich zum "Einchecken" aufliste, Clustering ist. Ich dachte, es funktioniert gestern, aber heute ist es nicht. muss ich jede Schichtgruppe einzeln einchecken oder kann ich sie irgendwie auflisten? so habe ich es jetzt: "markerClusters.checkIn (group1, group2, group3)" das Löschen der Kommas stoppt das Rendern der Map. – Ailis

Verwandte Themen