Osmbonuspack:显示可视RadiusMarkerClusterer的元素。怎么样?

时间:2015-04-08 13:30:51

标签: java android osmdroid

我有点问题。我想要的是什么:

  1. 按群集点击。例如,我有personMarkerClusterer。例如,它包含3个人(另一个人不在群集中,因为距离太大)。这是截图
  2. http://i.stack.imgur.com/XpnWp.png

    我覆盖RadiusMarkerClusterer类,onSingleTapConfirmed方法

        class MyRadiusMarkerClusterer extends RadiusMarkerClusterer {
    
        public MyRadiusMarkerClusterer(Context ctx) {
            super(ctx);
        }
    
        @Override
        public boolean onSingleTapConfirmed(MotionEvent event, MapView mapView) {
            if (super.onSingleTapConfirmed(event, mapView)) {
                Toast.makeText(MapActivity.this, "cluster was clicked", Toast.LENGTH_SHORT).show();
                return true;
            }
            return false;
        }
    
    }
    

    但是我点击了任何人!如果person不在群集中并且我点击了他,则单击onSingleTapConfirmed调用。为什么?我想只为集群的元素(即通过集群)获得回调。是的,它是集群的元素,因为我们通过

    添加了它
    personClusterMarkers.add(marker);
    

    我如何处理仅针对可视化群集的事件?

    1. 点击RadiusMarkerClusterer时获取标记列表。我们在MarkerClusterer中有方法getItems(),但它返回所有元素。我怎样才能获得可视集群的元素?

1 个答案:

答案 0 :(得分:0)

你为MyRadiusMarkerClusterer覆盖了onSingleTapConfirmed。因此,当单击群集器中的任何内容时,您将获得答案。

群集器不是群集,群集器包含许多群集。

如果要在点击群集标记时具有自定义行为,则必须通过覆盖buildClusterMarker来自定义此群集标记的创建。

看看这里:https://github.com/MKergall/osmbonuspack/issues/110

而不是设置自定义InfoWindow,您必须使用marker.setOnMarkerClickListener设置自定义OnMarkerClickListener。