@Override
    public void setBearing(final float bearing) {
        final float adjustedBearing = AngleUtils.normalize(360 - bearing); // VTM uses opposite way of calculating bearing compared to GM
        final MapPosition pos = mMap.getMapPosition();
        pos.setBearing(adjustedBearing);
        final float bearingDelta = Math.abs(AngleUtils.difference(360 - pos.bearing, bearing));
        if (bearingDelta > 10.f) {
            mMap.animator().animateTo(5000, pos, Easing.Type.QUAD_INOUT, ANIM_ROTATE);
        } else {
            mMap.setMapPosition(pos);
        }
    }
call this instead of VTM.layers().add so that we can keep track of layers added by the tile provider
main/src/main/java/cgeo/geocaching/unifiedmap/mapsforgevtm/MapsforgeVtmFragment.java