2017-01-14 1 views
0

Wenn ich meine clusterItem innen onMapReady hinzufügen wie folgtAndroid Karte Clustering funktioniert nicht in bestimmten Zustand

@Override 
    public void onMapReady(GoogleMap googleMap) { 
     Log.d("CustomMapFragment","onMapReady"); 
     map = googleMap; 
     map.getUiSettings().setAllGesturesEnabled(true); 
     map.getUiSettings().setCompassEnabled(true); 
     map.getUiSettings().setZoomGesturesEnabled(true); 
     map.getUiSettings().setZoomControlsEnabled(true); 

     mClusterManager.addItem(new MyMarker(23.748865, 90.411655, "a", new Resultset("112113","dsd"))); 
     mClusterManager.addItem(new MyMarker(23.749049, 90.411382, "b", new Resultset("112113","ddfdsd"))); 
     mClusterManager.addItem(new MyMarker(23.749129, 90.411088, "c", new Resultset("11211dsd3","dsd"))); 
     mClusterManager.addItem(new MyMarker(23.749241, 90.41068, "d", new Resultset("112113","fgdsd"))); 
     mClusterManager.addItem(new MyMarker(23.749183, 90.410257, "e", new Resultset("112113","qwdsd"))); 
    } 

Clustering wie erwartet funktionieren, wenn ich einige Cluster innerhalb onMapReady hinzuzufügen. Aber ich rufe ein Web-Service in regelmäßigen Abständen, die Cluster-Element hinzufügen wird

zur Karte
UIUpdater mUIUpdater = new UIUpdater(new Runnable() { 
    @Override 
    public void run() { 
     //running a web service 
     mClusterManager.addItem(new MyMarker(lat, longitude, memberListModel.get(i).getFirstName()+" "+ memberListModel.get(i).getLastName(), memberListModel.get(i))); 
    } 
} 

Nach periodischen Task aufrufen, Marker hinzugefügt abzubilden, aber es gibt kein Clustering-Effekt auch Markierungen werden zunächst unsichtbar, wenn ich vergrößern oder verkleinern die Die Karte, Marker sind sichtbar, aber kein Clustering-Effekt.

Ich habe folgende Abhängigkeiten

compile "com.google.android.gms:play-services-maps:9.4.0" 
compile "com.google.android.gms:play-services-location:9.4.0" 
compile 'com.google.maps.android:android-maps-utils:0.4+' 

Und in onResume des Fragments Ich habe hinzugefügt, um die periodische Task Läufer starten und in

@Override 
public void onResume() { 
    super.onResume(); 
    mUIUpdater.startUpdates(); 

} 

@Override 
public void onPause() { 
    super.onPause(); 
    mUIUpdater.stopUpdates(); 

} 

stoppen Wie kann ich Cluster Element hinzufügen zur Karte in einem periodischen Aufgabenläufer?

Antwort

1

Nach dem Hinzufügen von Cluster-Elementen sollten Sie unter Methoden aufrufen.

mClusterManager.clearItems(); 
mClusterManager.cluster(); 
+0

danke für die Antwort, ausprobiert, aber hat nicht funktioniert –

2
public class TheClusterItem implements ClusterItem { 
    ... 
} 

TheClusterItem item = new TheClusterItem(...); 
mClusterManager.addItem(item); // or list of items 
mClusterManager.cluster(); 

Nach Zugabe Element (e) und Aufrufen Clustermethode, werden in Clustern entsprechenden Bereich aktualisiert werden.

+0

Danke, aber hat nicht funktioniert –

+0

Wie hast du es getestet? Dieser Code stammt von meinem Projekt, also füge ich auch Marker hinzu und entferne so schnell wie möglich die Cluster. – Blackkara

Verwandte Themen