在我的应用中,要求是当我触摸地图中的任何位置时,我必须创建一个新的叠加层并使用标记显示它,如果我点击任何标记的位置,我必须在其中显示其详细信息一个气球。
在ItemizedOverlay类中编写的onTap()和onTouchEvent()如下所示:
@Override
protected boolean onTap(int index) {
if(!super.onTap(index)) {
MyOverlayItem<OverlayItem> overlayItem = new MyOverlayItem<OverlayItem>(
createItem(index).getPoint(), createItem(index).getTitle(),
createItem(index).getSnippet(), mapView, activity);
overlayItem.onTap(createItem(index).getPoint(), mapView);
}
return true;
}
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView) {
GeoPoint point = mapView.getProjection().fromPixels(
(int) event.getX(),
(int) event.getY());
addPoint(point);
return true;
}
MyOverlayItem中的onTap()如下:
public boolean onTap(GeoPoint point, MapView mapView) {
createBalloon(); //creates the balloon view.
return true;
}
我的问题是:
如果我要添加这个onTouchEvent(),则不会调用onTap()。总是一个新的点被添加。
我如何才能达到我的要求?我对这两种方法感到困惑。任何人都可以帮助我。提前谢谢。