缩放时谷歌地图集群会移动

时间:2016-11-29 10:01:15

标签: android google-maps

我收到了一个包含Google Map和群集API的应用程序。

我正在添加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;
    }
}

当这些项目仍未分组到群集中时,它们在地图上显示正常,没有任何问题。

当项目被分组到群集中时,存在一个问题,即当放大和缩小地图时,会使群集移动到地图上的其他位置。

如何让群集在地图上保留其位置?

1 个答案:

答案 0 :(得分:0)

似乎问题出在算法上。我在代码中有这一行:

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

这导致了这种行为。删除此行后,群集就像我预期的那样停留在原位。