Zum Inhalt

ym.modules.provider.MarkerClusterGroup

Überblick

Stellt ein MarkerClusterGroup-Objekt bereit. Damit können Marker, die nahe beieinander liegen, je nach Zoomstufe der Karte zu einem Cluster gruppiert und wieder aufgelöst werden. Ein Cluster wird als ein Element auf der Karte angezeigt und enthält Marker.

var markers = ym.markerClusterGroup({
    spiderfyOnMaxZoom: false,
    showCoverageOnHover: false,
    zoomToBoundsOnClick: false
});

Initialisierung

Factory: ym.markerClusterGroup(options)

Instanziiert ein MarkerClusterGroup-Objekt, optional mit den unten beschriebenen MarkerClusterGroup-Optionen.

Parameter Beschreibung Datentyp Standardwert
options [optional] Object null

Parameter: options

Name Beschreibung Datentyp Standardwert
showCoverageOnHover Beim Bewegen der Maus über einen Cluster werden die Grenzen des Clusters als Polygon gezeichnet. bool true
zoomToBoundsOnClick Ein Klick mit der Maus auf einen Cluster aktiviert das Zoomen in die Cluster-Grenzen. bool true
spiderfyOnMaxZoom Wird die letzte Zoomstufe der Karte erreicht, führt ein Klick auf den Cluster dazu, dass Linien (Spider Legs) vom Mittelpunkt weg gezeichnet werden, wenn Marker auf der Karte übereinanderliegen. bool true
spiderLegPolylineOptions Ermöglicht das Festlegen von Polyline-Optionen zur Definition des Erscheinungsbilds der Spider Legs. polyline option { weight: 1.5, color: '#222', opacity: 0.5 }
disableClusteringAtZoom Deaktiviert das Clustering oberhalb einer bestimmten Zoomstufe. Die maximale Zoomstufe ist 19. Siehe auch spiderfyOnMaxZoom. Number none
removeOutsideVisibleBounds Marker und Cluster, die sich nicht im Sichtbereich der Karte befinden, werden ausgeblendet. Für bessere Performance aktiviert. bool true
maxClusterRadius Gibt den Abstand in Pixeln vom zentralen Marker an, der vom Cluster abgedeckt wird. Bei einer kleinen Pixelzahl werden mehrere kleinere Marker-Cluster 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. Das Icon der Marker wird dabei überschrieben. bool false
spiderfyDistanceMultiplier Ermöglicht es, den Abstand der Spider Legs zum Mittelpunkt zu vergrößern. Zum Beispiel bei Verwendung großer Icons für die Marker. Number 1
iconCreateFunction Ermöglicht die Übergabe einer benutzerdefinierten Funktion zur Gestaltung eigener Icons und deren Inhalt für das Clustering. function (MarkerCluster cluster) null
animate Aktiviert oder deaktiviert die Animation beim Auflösen und Zusammenführen von Clustern sowie bei Spider Legs. bool true
animateAddingMarkers Wenn auf true gesetzt, werden Marker, die zur MarkerClusterGroup hinzugefügt werden, per Animation dem Cluster hinzugefügt. Dies funktioniert nur mit addLayer, nicht mit addLayers. Standardmäßig für bessere Performance deaktiviert. bool false
clusterPane Ermöglicht die Zuweisung eines MapPane, dem der Cluster hinzugefügt wird. Ein Map Pane ermöglicht das Gruppieren von Layern. Pane markerPane
chunkedLoading Aktiviert das Hinzufügen von Markern in aufgeteilten Zyklen, um bei großen Datenmengen ein Einfrieren des Browserfensters zu verhindern. bool false
chunkInterval Zeit in Millisekunden, nach der das Hinzufügen von addLayers pausiert wird, damit andere Prozesse der Seite ausgeführt werden können. Number 200
chunkDelay Zeit in Millisekunden, nach der die Pause von addLayers beendet wird, damit andere Prozesse ausgeführt werden können. Number 50
chunkProgress Callback-Funktion, die nach jedem chunkInterval ausgeführt wird. Ermöglicht z. B. die Implementierung einer Fortschrittsanzeige des Prozesses. function(number MarkersProcessed, number MarkersTotal, number elapsedTimeInMs, layersArray) {} null

Methoden

Marker hinzufügen und entfernen

Name Rückgabe Beschreibung
addLayer(ILayer layer) this Fügt den angegebenen Layer mit Markern zum Cluster hinzu.
removeLayer(ILayer layer) this Entfernt den angegebenen Layer mit Markern aus dem Cluster.

Massenhinzufügen und -entfernen von Markern

Name Rückgabe Beschreibung
addLayers(ILayer layer) this Fügt die angegebenen Layer mit Markern zum Cluster hinzu.
removeLayers(ILayer layer) this Entfernt die angegebenen Layer mit Markern aus dem Cluster.
clearLayers() this Entfernt alle Layer mit Markern aus dem Cluster.

Rückgabe des sichtbaren Elements eines Markers

Name Rückgabe Beschreibung
getVisibleParent(Marker marker) IMarker or ICluster Gibt das sichtbare Element zurück, wenn es auf der Karte sichtbar ist. Entweder den Marker oder den Cluster. Ist das Element nicht sichtbar, wird null zurückgegeben.

Cluster-Icons aktualisieren

Name Rückgabe Beschreibung
refreshClusters() None Erzwingt die Aktualisierung aller Cluster-Icons in der MarkerClusterGroup.
refreshClusters(Marker) None Erzwingt die Aktualisierung des Cluster-Icons, in dem sich der übergebene Marker befindet.
refreshClusters(Marker[]) None Erzwingt die Aktualisierung aller Cluster-Icons, die die übergebenen Marker enthalten.
refreshClusters(LayerGroup) None Erzwingt die Aktualisierung aller Cluster-Icons, die zu den Markern der angegebenen LayerGroup gehören.

Weitere 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 zum übergebenen Marker und ruft die Callback-Funktion auf, sobald der Marker auf der Karte sichtbar wird.

Events

Marker-Events wie click, mouseover usw. sind mit den Markern im Cluster verknüpft. Um Events für einen Cluster zu registrieren, gehen Sie wie folgt vor: 'cluster' + '', zum Beispiel: clusterclick, clustermouseover, clustermouseout.

markers.on('clusterclick', function (a) {
    console.log('marker ' + a.layer);
});
Event Event-Objekt Beschreibung
clusterclick MouseEvent Wird ausgelöst, wenn mit der Maus auf einen Cluster geklickt wird.
clustermouseover MouseEvent Wird ausgelöst, wenn die Maus in die Elementgrenzen des Clusters bewegt wird.
clustermouseout MouseEvent Wird ausgelöst, wenn die Elementgrenzen des Clusters mit der Maus verlassen werden.
animationend Event Wird ausgelöst, wenn die Animation für das Zusammenführen oder Auflösen des Clusters abgeschlossen ist.
spiderfied ClusterEvent Wird ausgelöst, wenn übereinanderliegende Marker auf der Karte mit Linien (Spider Legs) vom Mittelpunkt aus auseinandergezogen werden. (Enthält Marker- und Cluster-Attribute).
unspiderfied ClusterEvent Wird ausgelöst, wenn übereinanderliegende Marker auf der Karte mit Linien (Spider Legs) vom Mittelpunkt aus wieder geclustert werden. (Enthält Marker- und Cluster-Attribute).