如何创建两个监听器?如果一个集群用于聚类,则另一个将在 map 上不存在任何集群项目的情况下将新的集群项目加载到 map 上。
//needed for clustering
map.setOnCameraChangeListener(mClusterManager);
// need for loading clusteritems
map.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() {
@Override
public void onCameraChange(CameraPosition position) {
// ifMarkesNotInsideMapReload...
我认为这是不可能的,但有人可能解决了这个问题。
一个想法是设置一个起始位置并手动轮询更改。.不酷:-)
我正在使用Google集群库:google cluster
最佳答案
我已经研究了AMUtils库的ClusterManager
实现,如果它也实现了onCameraChange
,它看起来就对ClusterRenderer
的实现调用了OnCameraChangeListener
。只需使其实现该接口(interface)即可。
代码的相关部分:
@Override
public void onCameraChange(CameraPosition cameraPosition) {
if (mRenderer instanceof GoogleMap.OnCameraChangeListener) {
((GoogleMap.OnCameraChangeListener) mRenderer).onCameraChange(cameraPosition);
}
如果您使用的是
DefaultClusterRendeder
,请创建一个类似以下的类:public class MyClusterRenderer extends DefaultClusterRenderer implements OnCameraChangeListener {