2016-11-29 68 views
1

我得到了一個包含Google地圖和集羣API的應用程序。Google地圖集羣在縮放時移動

我加入ClusterItem就像這樣:

MyClusterItem item = new MyClusterItem(optionMarkerToDraw); 
clusterManager.addItem(item); 

我得到了渲染:

public class ClusterRenderer extends DefaultClusterRenderer<MyClusterItem> 
{ 
    public ClusterRenderer() 
    { 
     super(getActivity(), map, clusterManager); 
    } 

    @Override 
    protected void onBeforeClusterItemRendered(MyClusterItem item, MarkerOptions markerOptions) 
    { 
     markerOptions.icon(item.getIcon()); 
     markerOptions.position(item.getPosition()); 
     markerOptions.alpha(item.getAlpha()); 
    } 

    @Override 
    protected void onBeforeClusterRendered(Cluster<MyClusterItem> cluster, MarkerOptions markerOptions) 
    { 
     super.onBeforeClusterRendered(cluster,markerOptions); 
    } 

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

當項目仍然沒有編組爲集羣,他們展示的細沒有問題的地圖。

當項目被分組到一個集羣中時,存在一個問題,即當放大和縮小地圖時,會使集羣移動到地圖上的其他位置。

如何讓羣集在地圖上保持其位置?

回答

0

這似乎是問題與算法。我在代碼中有這一行:

clusterManager.setAlgorithm(new PreCachingAlgorithmDecorator<MGClusterItem>(new GridBasedAlgorithm<MGClusterItem>())); 

這引起了行爲。刪除這條線後,集羣像我預期的那樣停留在原地。

+0

我面臨與設置算法相同的問題? – KomalG

+0

嘗試使用與我答案中相同的行 –