Leaflet Cluster Farbe basierend auf Icons im Inneren
Ich habe Stecknadeln auf meiner Karte leaflet.js, auf der das Bild vom Status des Objekts abhängt, das sie darstellen. Zum Beispiel Online- und Offline-Benutzer - Online sind grün und Offline sind rot. Dazu füge ich dem divIcon eine Klasse hinzu und steuere dann die Bilder mit css.
Ich habe meiner Karte jetzt Marker-Clustering hinzugefügt. Was ich tun möchte, ist die Farbe des Clusters durch dieMehrheit des Status 'innerhalb des Clusters. Meine erste Idee war, so etwas zu machen:
this.markers = L.markerClusterGroup({
iconCreateFunction: function(cluster) {
// Use this somehow to filter through and look at the pin elements
console.log(cluster.getAllChildMarkers());
return new L.DivIcon({ html: /* ?? */ });
}
});
Leider kann ich nicht auf die HTML-Elemente des Arrays zugreifen, von dem ich sie zurückgegeben habegetAllChildMarkers
.
Hat jemand eine Idee, wie ich das machen könnte? Oder eine Möglichkeit, das HTML-Element der Stecknadel zu erhalten?
Vielen Dank
BEARBEITEN:
Hier erstelle ich meine Map-Pins (die meinen Backbone-Modellen zugewiesen sind)mapPin
Attribut):
that.mapPins.org = L.divIcon({
className: 'org-div-icon',
html: "<div class='org-status "+ org.getGroupStatus() +"'></div>",
iconSize: [35, 35],
iconAnchor: [18, 17]
});
Und so ändere ich die Klasse dynamisch:
$(model.get('mapPin')._icon).find('.org-status').attr('class', 'org-status ' + model.getGroupStatus());
Ich dachte, ich könnte darauf zugreifen_icon
von der Rückkehr vongetAllChildMarkers
wie oben, aber es scheint nicht da zu sein.