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