OnCameraChangeListener

OnCameraChangeListener

如何创建两个监听器?如果一个集群用于聚类,则另一个将在 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 {

10-08 18:02