0

我在我的應用程序中使用標記羣集。我想增加網格大小。我已經定製了DefaultClusterRenderer類,但是我沒有找到任何增加尺寸的東西。請幫我解決如何增加它。 以下是定製clusterRenderer的代碼如何在android中增加Marker Cluster的網格大小?

public class MyClusterRenderer extends DefaultClusterRenderer<MyItem> { 

public MyClusterRenderer(Context context, GoogleMap map, ClusterManager clusterManager) { 
    super(context, map, clusterManager); 
} 

@Override 
protected boolean shouldRenderAsCluster(Cluster<MyItem> cluster) { 
    //start clustering if at least 2 items overlap 
    return cluster.getSize() > 4; 
} 

@Override 
protected void onBeforeClusterItemRendered(MyItem item,MarkerOptions markerOptions){ 
    if(item.isRegister()==true) 
    { 
     BitmapDescriptor markerDescriptor = BitmapDescriptorFactory.defaultMarker(340); 
     markerOptions.icon(markerDescriptor); 

     //markerOptions.icon(BitmapDescriptorFactory.fromResource(R.drawable.x)); 
    } 
    else if(item.isRegister()==false) 
    { 
     BitmapDescriptor markerDescriptor = BitmapDescriptorFactory.defaultMarker(60); 
     markerOptions.icon(markerDescriptor).title("false"); 
    } 
} 

} 
+0

您可能能夠使用這些答案的組合http://stackoverflow.com/questions/23338772/maps-api-v3-clustering-at-different-zoom-levels/23341368#23341368,HTTP ://stackoverflow.com/questions/15700808/setting-max-zoom-level-in-google-maps-android-api-v2,和http://stackoverflow.com/questions/16331940/create-adaptive-grid- on-the-map-for-clusterization – Verma

+0

@Verma謝謝,提到的鏈接可能會有幫助,但我已經解決了這個問題,我很快就會發布我的答案。 – mobileDeveloper

回答

0

一個簡單的解決方案是使用NonHierarchicalDistanceBasedAlgorithm。創建一個新的calss並使用NonHierarchicalDistanceBasedAlgorithm對其進行擴展,然後覆蓋方法getClusters(雙縮放)。在這種方法中,您將能夠通過更改zoomSpecificSpan的值來設置網格大小,在我的第一個值改爲200.0D,它適用於我。

public Set<? extends Cluster<T>> getClusters(double zoom) { 


    int discreteZoom = (int)zoom; 
    double zoomSpecificSpan = 200.0D/Math.pow(2.0D, (double)discreteZoom)/256.0D; 
    HashSet visitedCandidates = new HashSet(); 
    HashSet results = new HashSet(); 
    HashMap distanceToCluster = new HashMap(); 
    HashMap itemToCluster = new HashMap(); 
    PointQuadTree var10 = this.mQuadTree; 
相關問題