检测DirectedLocationOverlay上的点击

时间:2013-09-12 20:07:07

标签: android osmdroid

将ItemizedIconOverlay.OnItemGestureListener附加到ItemizedIconOverlay(它可以在构造函数中传递)非常容易。但是,DirectedLocationOverlay没有这样的构造函数。

我试着这样做:

    DirectedLocationOverlay LocalDeviceMarker = new DirectedLocationOverlay(this.getBaseContext())
    {
        @Override
        public boolean onSingleTapConfirmed(final MotionEvent e,
                final MapView mapView)
        {
            Toast.makeText(
                    MainActivity.this,
                    getTitle() + " lat: "
                            + mLocation.getLatitudeE6() + " long: "
                            + mLocation.getLongitudeE6(),
                    Toast.LENGTH_LONG).show();
            return true; // No one else should handle this event.
        }
    };

但是当我点击地图上的任何地方时(而不是仅仅按照我想要的箭头),似乎会触发onSingleTapConfirmed。这样做的正确方法是什么?此外,ItemizedIconOverlay允许您为每个项目分配“标题” - 有没有办法命名这些DirectedLocationOverlays?

1 个答案:

答案 0 :(得分:1)

DirectedLocationOverlay是用户贡献的代码,并不是v1 Google API的一部分,因此它没有得到很多关注。它与ItemizedOverlay和ItemizedIconOverlay类似,但它没有命中测试方法来检测实际图标的点击。它可能应该在最初编写时扩展其中一个类。我将看一下如何在逐项覆盖中实现命中测试,并在DirectedLocationOverlay中实现相同的功能。或者您必须扩展ItemizedIconOverlay并向draw方法添加旋转功能。