18 Stimmen

Wie man mein eigenes Symbol für Marker im Clusterer in Google Maps festlegt

Ich verwende GoogleMaps-Clustering. Ich habe 4 verschiedene Arten von Markern, von denen jeder von einer abstrakten Klasse erbt, jeder hat sein eigenes Symbol und es ist im MarkerOptions-Feld definiert. Ich verwende ClusterManager für diese abstrakte Klasse. Wenn ich einfach verwende

//marker ist eine Instanz einer der erweiterten Klassen und hat den abstrakten Klassentyp
clusterManager.addItem(marker);

Nach dem Clustering wird das Symbol auf Standard gesetzt. Wie kann ich das beheben? Ich habe versucht, etwas wie dies zu verwenden:

//marker ist abstrakter Marker, getMarker gibt die MarkerOptions dieses Markers zurück
clusterManager.getMarkerCollection().addMarker(marker.getMarker());

aber es funktioniert auch nicht, der Marker wird mit dem benötigten Symbol auf der Karte gedruckt, aber ohne Clustering.

Sollte ich eine Methode in meiner abstrakten Klasse erstellen oder gibt es einen Weg, dies durch Erweiterung von DefaultClusterRenderer zu tun? Ich habe keine Informationen dazu gefunden, indem ich Google oder die Google Maps-Bibliothek lerne.

Vielen Dank für die Hilfe!

29voto

Vasilov Artur Punkte 1477

Also, es war mein Fehler. Wieder zeigt es, dass ich mehr Aufmerksamkeit beim Studium der Bibliothek schenken sollte. Wenn jemand an der Antwort interessiert ist, hier ist sie: Ich hatte recht zu vermuten, dass ich einige Methoden in DefaultClusterRenderer überschreiben muss. Also, der volle Weg: Erstellen Sie eine eigene Klasse und erweitern Sie sie von DefaultClusterRenderer:

public class OwnIconRendered extends DefaultClusterRenderer

Dann überschreiben Sie die Methode onBeforeClusterItemRendered:

@Override
protected void onBeforeClusterItemRendered(AbstractMarker item,
        MarkerOptions markerOptions) {
    markerOptions.icon(item.getMarker().getIcon());
}

Der Weg ist ziemlich einfach, aber es scheint mir, dass das Clustering langsamer zu funktionieren begann. Also, das reicht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X