我正在创建一个应用程序,将大量独特标记绘制到地图片段(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)));
}
}
答案 0 :(得分:2)
Google发布了一个库,在设置时,会在缩小时自动对标记进行聚类。它是Google Maps Android API实用程序库available here的一部分。您可以找到clustering here的设置指南。我个人在我的应用程序中使用它(经过几个月的尝试设置其他库)并取得了很大的成功。但是,在聚类/去聚很多项目时会有一些延迟(我的地图上有超过1000个项目,所以你可能不会遇到同样的问题)。
请务必注意,您需要创建ClusterItem
的自定义实现,并将这些对象传递到群集器,而不是直接通过GoogleMap
设置标记。