Android Google Map Utils聚类距离 [英] Android Google Map Utils Clustering Distance

查看:174
本文介绍了Android Google Map Utils聚类距离的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用Android Google Map utils启用我的标记群集。我使用10 标记



当我按下一个按钮时,我打电话:

  mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getMarkerBoundingBox(),MAP_PADDING)); 

我的八个标记靠近给定的区域,所以它们聚集在一起,我可以看到一个蓝色的球中心八号。
其他两个标记远离另一个组,但彼此非常接近。

我现在看到一个包含八个标记的群集,远离一个标记。只有当我放大单个标记(实际上是两个)的区域时,我才能看到两个标记。



我想显示八个标记的集群,但是这两个集群。



如何减少创建集群的距离?在极限情况下,如果标记太靠近,我希望在最后的缩放级别创建群集,但只有一个。



我试图将 MAX_DISTANCE_AT_ZOOM at NonHierarchicalDistanceBasedAlgorithm.java 但没有成功。任何想法??尝试重写shouldRenderAsCluster,所以集群从2个项目开始:

解决方案


在声明集群管理器时:

  mClusterManager.setRenderer(new CustomRenderer< YOUR_TYPE>(getActivity() ,googleMap,mClusterManager)); 

class CustomRenderer< T extends ClusterItem>扩展DefaultClusterRenderer< T> {
public CustomRenderer(Context context,GoogleMap map,ClusterManager< T> clusterManager){
super(context,map,clusterManager);

$ b @Override
protected boolean shouldRenderAsCluster(Cluster< T> cluster){
//如果至少2个项目重叠,则开始集群
返回集群.getSize()> 1;
}
...
}


I'm using Android Google Map utils to enable clustering of my Markers. I'm using 10 Markers

When I press on a button, I call:

mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngBounds(getMarkerBoundingBox(), MAP_PADDING));

Eight of my markers are close to a given region so they are clustering and I can see a blue ball with the number eight on the center. The other two markers are far away from the other group but are really close to each other.

I'm now seeing a cluster with the eight markers and far away a single marker. Only if I zoom in in the area that single marker (that in fact are two) I can see both markers.

I want to show the cluster of the eight markers but a cluster of that two.

How can I decrease the distance that a cluster is created? At the limit, if markers are too close, I want clusters to be created at zoom level last but one.

I've tried to change MAX_DISTANCE_AT_ZOOM at NonHierarchicalDistanceBasedAlgorithm.java but with no success. Any ideas??

解决方案

Try to override shouldRenderAsCluster, so clustering starts from just 2 items:

When declaring the cluster manager:

    mClusterManager.setRenderer(new CustomRenderer<YOUR_TYPE>(getActivity(), googleMap, mClusterManager));

class CustomRenderer<T extends ClusterItem> extends DefaultClusterRenderer<T> {
    public CustomRenderer(Context context, GoogleMap map, ClusterManager<T> clusterManager) {
        super(context, map, clusterManager);
    }

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

这篇关于Android Google Map Utils聚类距离的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆