【问题标题】:Google Map Cluster moves when zooming缩放时谷歌地图集群移动
【发布时间】:2016-11-29 10:01:15
【问题描述】:

我有一个带有 Google 地图和集群 API 的应用程序。

我正在像这样添加ClusterItems:

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;
    }
}

当项目仍未分组到集群中时,它们在地图上显示良好,没有问题。

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

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

【问题讨论】:

    标签: android google-maps


    【解决方案1】:

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

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

    这导致了这种行为。删除这条线后,集群像我预期的那样保持在原来的位置。

    【讨论】:

    • 我在设置算法时遇到同样的问题?
    • 尝试使用与我的答案相同的行
    • @YonatanNir 是的,它的工作。但是当我使用DefaultClusterRenderer 渲染时,它会出现很多标记,然后单击任何标记,然后进行一些集群标记合并。但如果我使用GridBasedAlgorithm,那么问题就不会出现,但当时集群会为此移动任何解决方案
    【解决方案2】:

    应该更改集群管理器的算法

    let algorithm = GMUNonHierarchicalDistanceBasedAlgorithm()
    
    let iconGenerator = GMUDefaultClusterIconGenerator()
    
    let renderer = GMUDefaultClusterRenderer(mapView: mapView, clusterIconGenerator: iconGenerator)
    
    clusterManager = GMUClusterManager(map: mapView, algorithm: algorithm, renderer: renderer)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      相关资源
      最近更新 更多