Android Google Map Utils聚类距离 [英] Android Google Map Utils Clustering Distance
问题描述
我使用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屋!