package org.osmdroid.overlays; import org.oscim.core.GeoPoint; import org.oscim.overlay.Overlay; import org.oscim.view.MapView; import android.content.Context; import android.view.MotionEvent; /** * Empty overlay than can be used to detect events on the map, and to throw them * to a MapEventsReceiver. * @see MapEventsReceiver * @author M.Kergall */ public class MapEventsOverlay extends Overlay { private MapEventsReceiver mReceiver; /** * @param mapView * the MapView * @param receiver * the object that will receive/handle the events. It must * implement MapEventsReceiver interface. */ public MapEventsOverlay(MapView mapView, MapEventsReceiver receiver) { super(mapView); mReceiver = receiver; } @Override public boolean onSingleTapUp(MotionEvent e) { GeoPoint p = mMapView.getMapViewPosition().fromScreenPixels(e.getX(), e.getY()); return mReceiver.singleTapUpHelper(p); } @Override public boolean onLongPress(MotionEvent e) { GeoPoint p = mMapView.getMapViewPosition().fromScreenPixels(e.getX(), e.getY()); // throw event to the receiver: return mReceiver.longPressHelper(p); } }