2014-05-14 8 views
12

Ich benutze GoogleMaps Clustering. Ich habe 4 verschiedene Arten von Markern, jeder erstreckt sich von einer abstrakten Klasse, jeder hat sein OWM-Symbol und es im MarkerOptions-Feld definiert. Ich verwende den ClusterManager für diese abstrakte Klasse. nur Als ichWie setze ich mein eigenes Icon für Marker in Clustern in Google Maps

//marker is instance of one of extended classes and has abstract class type 
clusterManager.addItem(marker); 

Nach Clustering verwenden setzt es Symbol auf Standard. Wie kann ich das beheben? Ich habe versucht, etwas zu verwenden:

//marker is abstract marker, getMarker returns the MarkerOptions of this marker 
clusterManager.getMarkerCollection().addMarker(marker.getMarker()); 

aber nicht arbeiten, wird Marker mit den benötigten Symbol auf der Karte gedruckt, aber ohne Clustering.

Sollte ich create eine Methode in meiner abstrakten Klasse erstellen oder gibt es eine Möglichkeit, dies von DefaultClusterRenderer zu tun? Ich habe keine Informationen über Google gefunden oder google maps lib gelernt.

Vielen Dank für Ihre Hilfe!

Antwort

22

Also, es war meine Dummheit. Auch hier zeigt sich, dass ich mehr aufpassen sollte, wenn ich Bibliothek studiere. Wenn jemand an der Antwort interessiert ist, hier ist es: Ich hatte richtig angenommen, dass ich eine Methode in DefaultClusterRenderer überschreiben muss. So ist die volle Art und Weise: eigene Klasse zu erstellen und es von DefaultClusterRenderer erweitern:

public class OwnIconRendered extends DefaultClusterRenderer<AbstractMarker> 

Dann überschreiben 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 Clustering begann langsamer zu arbeiten. Also, das ist genug.

+0

können Sie mehr Code posten? danke – delive

+2

Ich denke, es ist zu spät, aber für die Zukunft können Sie einen Blick hier werfen http://stackoverflow.com/questions/27745299/how-to-add-title-snippet-and-icon-to-clusteritem/27745681# 27745681 –

+0

in meinem Fall musste ich 'super(). OnBeforeClustererItemRendered' aufrufen – murt