Search code examples
androidopenstreetmaposmdroid

Android osmdroid overlayItem tap detected with offset


I use

+android 4.2
+osmdroid-android-3.0.9
+sherlock action bar

I need show on map item. On click at this item show dialog. But has trouble onItemSingleTapUp raised with offset.

osmapview = (MapView) findViewById(R.id.osmapview);
osmapview.setBuiltInZoomControls(true);
osmapview.setTileSource(TileSourceFactory.MAPNIK);
osmapview.setClickable(false);
final MapController mc = osmapview.getController();
mc.setZoom(14);

ArrayList<OverlayItem> overlayItems = new ArrayList<OverlayItem>();
CustomOverLay overlays = new CustomOverLay(overlayItems, getResources().getDrawable(R.drawable.marker96));
GeoPoint p = new GeoPoint(48.427677, 35.239871);
OverlayItem overlayItem = new OverlayItem("Title1", "Description1", p);
overlays.addItem(overlayItem);



public class CustomOverLay extends ItemizedIconOverlay<OverlayItem> {
    public CustomOverLay(ArrayList<OverlayItem> overlayItems, Drawable drawable) {
    super(overlayItems, drawable, new OnItemGestureListener<OverlayItem>() {

            @Override 
    public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
                L.e("++" + 1);
                return false;
            }

            @Override 
            public boolean onItemLongPress(final int index, final OverlayItem item) {
                L.e("++" + 2);
                return false;
            }},
            new DefaultResourceProxyImpl(getApplicationContext()));
    }

@Override
protected boolean onSingleTapUpHelper(int index, OverlayItem item, MapView mapView) {
        L.e("+ " + item.mTitle);
        return super.onSingleTapUpHelper(index, item, mapView);
    }
}

map drawed - ok

marker drawed - ok

tap on marker - failed

if tap bottom (very bottom) of marker - ok

What is the cause the offset?


Solution

  • Turn off hardware acceleration in your manifest or in code. See the samples application for examples on how to do this. There is better hardware acceleration support in 3.0.10.