private boolean insideCachePointDrawable(final Point p, final Point drawP, final Drawable d) {
        final int width = d.getIntrinsicWidth();
        final int height = d.getIntrinsicHeight();
        final int diffX = p.x - drawP.x;
        final int diffY = p.y - drawP.y;
        // assume drawable is drawn above drawP
        return
                Math.abs(diffX) < width / 2 &&
                        diffY > -height && diffY < 0;

    }
can be made static if nonstatic inner clases could have static methods
main/src/main/java/cgeo/geocaching/maps/google/v2/GoogleMapView.java