在某些缩放级别显示/消失地图标记

时间:2014-07-19 01:08:45

标签: android google-maps-api-3 google-maps-markers

我正在创建一个应用程序,将大量独特标记绘制到地图片段(60个标记)/我使用ArrayList进行此操作,并使用for循环绘制它们。

我遇到的问题是,在缩小时,地图非常混乱,而且很迟钝。我想找到一种方法让标记在缩小时消失,例如在11级,然后从10缩放。我将如何做到这一点?

// Get a handle to the xml Map Fragment
GoogleMap map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

ArrayList<LatLng> tree = new ArrayList<LatLng>()

tree.add(new LatLng(48.617515, -3.945385));
tree.add(new LatLng(49.617515, -3.945385));
... //x58

for (int i = 0; i < camLoc.size(); i++) {      //for loop to add the LatLng data to the array list
         map.addMarker(new MarkerOptions()
        .position(camLoc.get(i)));         
 }
}

1 个答案:

答案 0 :(得分:2)

Google发布了一个库,在设置时,会在缩小时自动对标记进行聚类。它是Google Maps Android API实用程序库available here的一部分。您可以找到clustering here的设置指南。我个人在我的应用程序中使用它(经过几个月的尝试设置其他库)并取得了很大的成功。但是,在聚类/去聚很多项目时会有一些延迟(我的地图上有超过1000个项目,所以你可能不会遇到同样的问题)。

请务必注意,您需要创建ClusterItem的自定义实现,并将这些对象传递到群集器,而不是直接通过GoogleMap设置标记。