ym.modules.provider.MarkerClusterGroup
Verfügbar ab V 3.5
Überblick
Stellt ein MarkerClusterGroup-Objekt zur Verfügung. Dieses ermöglicht es Marker, die nahe zueinander liegen, zu einem Cluster zusammenzufassen und je nach Zoomstufe in der Karte wieder aufzulösen. Ein Cluster wird als ein Element auf der Karte angezeigt.
var markers = ym.markerClusterGroup({
spiderfyOnMaxZoom: false,
showCoverageOnHover: false,
zoomToBoundsOnClick: false
});
Initialisierung
Factory: ym.markerClusterGroup(options)
Instanziiert ein MarkerClusterGroup-Objekt mit optional mit den unten beschriebenen MarkerClusterGroup-Optionen.
Parameter
Name | Beschreibung | Datentyp | Standardwert |
---|---|---|---|
options |
[optional] | Object |
null |
Parameter: options
Name | Beschreibung | Datentyp | Standardwert |
---|---|---|---|
showCoverageOnHover |
Wenn man mit der Maus über einen Cluster fährt, werden die Grenzen des Clusters durch ein Polygon eingezeichnet. | bool |
true |
zoomToBoundsOnClick |
Wenn man auf ein Cluster mit der Maus klickt, wird zu dem Clustergrenzen hineingezoomt. | bool |
true |
spiderfyOnMaxZoom |
Wenn das letzte Zoomlevel der Karte erreicht wird, werden bei einem Klick auf dem Cluster bei übereinanderliegenden Markern auf der Karte mit Linien (Spinnenbeine) vom Mittelpunkt auseinandergezogen. | bool |
true |
spiderLegPolylineOptions |
Ermöglicht das Festlegen von Polyline-Optionen, um das Aussehen Spinnenbeine zu definieren. | polyline option |
{ weight: 1.5, color: '#222', opacity: 0.5 } |
disableClusteringAtZoom |
Deaktiviert ab einem bestimmten Zoomlevel das Clustern. Das maximale Zoomlevel ist 19. Siehe auch spiderfyOnMaxZoom. | Number |
none |
removeOutsideVisibleBounds |
Marker und Cluster, die sich nicht im Sichtfeld der Karte befinden, werden ausgeblendet. Dient zur besseren Performance. | bool |
true |
maxClusterRadius |
Gibt den Abstand in Pixel an vom zentralen Marker, der vom Cluster abgedeckt wird. Bei einer kleinen Pixelanzahl werden mehrere kleinere Cluster mit Markern erstellt. | Number |
80 |
polygonOptions |
Optionen die Übergeben werden, wenn ein ym.Polygon(points, options) für die Grenzen übergeben wird. | ym.Polygon(points, options) |
null |
singleMarkerMode |
Wenn aktiviert, werden alle Marker als Cluster mit einem Element angezeigt. Dabei wird das Icon der Marker überschrieben. | bool |
false |
spiderfyDistanceMultiplier |
Erlaubt es, den Anstand der Spinnenbeine zum Mittelpunkt zu erhöhen. Zum Beispiel wenn man große Icons verwendet für die Marker. | Number |
1 |
iconCreateFunction |
Erlaubt es, eine eigene Funktion zu übergeben, um eigene Icons und dessen Inhalt für das Clustern zu gestalten. Für mehr Informationen, siehe ym.modules.provider.MarkerCluster mit zum Beispiel den Methoden getChildCount() und getAllChildMarkers().
function(cluster) {return L.divIcon({ html: '<b>' + cluster.getChildCount() + '</b>' });}</code></td>
|
function (MarkerCluster cluster) |
null |
animate |
Aktiviert oder deaktiviert die Animation beim Auflösen und Zusammenführen von Clustern und Spinnenbeinen. | bool |
true |
animateAddingMarkers |
Falls true gesetzt werden Marker, die zur MarkerClusterGroup hinzugefügt werden, per Animation zum Cluster hinzugefügt. Dies funktioniert nur mit addLayer und nicht addLayers. Ist für eine bessere Performance standardmäßig deaktiviert. | bool |
false |
clusterPane |
Erlaubt das Zuordnen einer MapPane wo das Cluster hinzugefügt wird. Eine Map Pane erlaubt das Gruppieren von Layern. | Pane |
markerPane |
chunkedLoading |
Aktiviert das Hinzufügen der Marker in aufgeteilten Zyklen, um ein Einfrieren das Browser Fensters zu verhindern, bei großen Datenmengen. | bool |
false |
chunkInterval |
Zeit in Millisekunden, nach dem das Hinzufügen von addLayers pausiert wird, das andere Prozesse der Seite durchgeführt werden können. | Number |
200 |
chunkDelay |
Zeit in Millisekunden, nachdem addLayers pausiert wird, dass andere Prozesse der Seite ausgeführt werden können. | Number |
50 |
chunkProgress |
Callback Funktion, die nach jedem chunkInterval ausgeführt wird. Ermöglicht z.B das Implementieren einer Fortschrittsanzeige des Prozesses. | function(number MarkersProcessed, number MarkersTotal, number elapsedTimeInMs, layersArray) {} |
null |
Methoden
Hinzufügen und entfernen von Markern
Name | Rückgabe | Beschreibung |
---|---|---|
addLayer(ILayer layer) |
this |
Fügt dem Cluster die angegebene Ebene mit Markern hinzu. |
removeLayer(ILayer layer) |
this |
Entfernt aus dem Cluster die angegebene Ebene mit Markern. |
Massenhaftes hinzufügen und entfernen von Markern
Name | Rückgabe | Beschreibung |
---|---|---|
addLayers(ILayer layer) |
this |
Fügt dem Cluster die angegebene Ebenen mit Markern hinzu. |
removeLayers(ILayer layer) |
this |
Entfernt aus dem Cluster die angegebene Ebenen mit Markern. |
clearLayers() |
this |
Entfernt aus dem Cluster alle Ebenen mit Markern. |
Rückgabe des sichtbaren Elements eines Markers
Name | Rückgabe | Beschreibung |
---|---|---|
getVisibleParent(Marker marker) |
IMarker oder ICluster |
Gibt das sichtbare Element zurück, wenn es auf der Karte sichtbar ist. Entweder den Marker oder den Cluster. Wenn das Element nicht sichtbar ist, wird null zurückgegeben. |
Aktualisieren von Cluster Icons
Name | Rückgabe | Beschreibung |
---|---|---|
refreshClusters() |
None |
Erzwingt das alle Cluster Icons in der MarkerClusterGroup aktualisiert werden |
refreshClusters(Marker) |
None |
Erzwingt das Aktualisieren des Cluster-Icons, in der sich der übergebene Marker befindet. |
refreshClusters(Marker[]) |
None |
Erzwingt das alle Cluster-Icons, in der sich die übergebenen Marker befinden, aktualisiert werden. |
refreshClusters(LayerGroup) |
None |
Erzwingt das alle Cluster-Icons, die mit den Markern der übergebenen LayerGroup in Zusammenhang stehen, aktualisiert werden. |
Andere Methoden
Name | Rückgabe | Beschreibung |
---|---|---|
hasLayer(Layer) |
Layer |
Gibt true zurück, wenn sich der Layer (Marker) in der MarkerClusterGroup befindet. |
zoomToShowLayer(Layer, callback) |
None |
Zoomt zu dem übergebenen Marker und ruft die Callback-Funktion auf, wenn der Marker sichtbar auf der Karte wird. |
Events
Marker Events wie click
, mouseover
, usw. sind den Markern im Cluster zugeordnet. Um Events für einen Cluster zu registrieren, geht man wie folgt vor: 'cluster' + '<eventName>'
, zum Beispiel: clusterclick
, clustermouseover
, clustermouseout
.
markers.on('clusterclick', function (a) {
console.log('marker ' + a.layer);
});
Ereignis | Ereignis-Objekt | Beschreibung |
---|---|---|
clusterclick |
MouseEvent | Wird ausgelöst, wenn auf ein Cluster mit der Maus geklickt wird. |
clustermouseover |
MouseEvent | Wird ausgelöst, wenn in die Elementgrenzen des Clusters mit der Maus gefahren wird. |
clustermouseout |
MouseEvent | Wird ausgelöst, wenn die Elementgrenzen des Clusters mit der Maus verlassen wird. |
animationend |
Event | Wird ausgelöst, wenn die Animation für das Cluster zusammengefasst oder auflösen beendet wird. |
spiderfied |
ClusterEvent | Wird ausgelöst, wenn übereinanderliegende Marker auf der Karte mit Linien (Spinnenbeine) vom Mittelpunkt auseinandergezogen werden. (Beinhaltet Marker und Cluster Attribute). |
unspiderfied |
ClusterEvent | Wird ausgelöst, wenn übereinanderliegende Marker auf der Karte mit Linien (Spinnenbeine) vom Mittelpunkt wieder zu einem Cluster zusammengefasst werden. (Beinhaltet Marker und Cluster Attribute). |