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