Zusätzlich zu meiner SimpleMarker Klasse habe ich eine Engine zum Clustern von Markern entworfen, wenn viele Marker nah beieinander sind. Bitte beachten Sie, dass es für diese Thematik deutlich bessere Implementationen gibt, beispielsweise der MarkerManager aus der Google Maps Utility Library (mein SimpleMarker ist Kompatibel zu diesem MarkerManager).
Die Präsentation meines Codes dient also vorwiegend zu Lernzwecken, weswegen ich auch versucht habe, den Code so einfach wie nur möglich zu gestalten. Wenn Sie also an der genauen Funktionsweise eines Clusterers interessiert sind, lesen Sie ruhig weiter ;-).
Meine SimpleMarker Klasse wurde soeben aktualisiert. Nachdem ich darauf aufmerksam gemacht wurde, dass der MarkerManager aus der Google Maps Utility Library eine setVisible() Methode bei den von ihr verwalteten Markern benötigt, habe ich ebendiese Methode hinzugefügt. Nun ist die Klasse kompatibel zum Manager und kann in Situationen eingesetzt werden, in denen ressourcenschonende Marker und Clustering oder ähnliches benötigt werden.
Update: Soeben habe ich ein zweites Update hochgeladen. Von nun an werden die Bounds, welche per SimpleMarker.getBounds() berechnet werden, in einem Array zwischengespeichert. Dies erhöht die Leistungsfähigkeit meiner SimpleCLuster Klasse, zu welcher in den nächsten Tagen ein Artikel folgt.
Seit einiger Zeit arbeite ich sehr oft mit der Google Maps API V3. Oftmals möchte man eine hohe Anzahl an Markern anzeigen, allerdings sind die standard google.maps.Marker gänzlich ungeeignet für diese Aufgabe. Befinden sich viele davon auf einer Karte, wird die gesamte Applikation sehr langsam. Aus diesem Grund wurde das Konzept der resourcenschonenden Marker (auch "Lightweight Marker" genannt) entworfen. Im Grunde genommen implementiert man eine abstrakte Klasse für Overlays und hält dabei die DOM-Struktur des Markers so einfach wie nur möglich. Es gibt etliche Varianten solcher Marker, manche mit mehr und manche mit weniger Funktionen.