@Override
    protected void onResume() {
        if (mapFragment == null) {
            recreate(); // restart with a fresh MapView
        }

        if (Settings.removeFromRouteOnLog()) {
            viewModel.reloadIndividualRoute();
        }
        super.onResume();
        reloadCachesAndWaypoints();
        MapUtils.updateFilterBar(this, viewModel.mapType.filterContext);
        if (tileProvider != null) {
            tileProvider.onResume();
        }

        wherigoListenerId = WherigoGame.get().addListener(nt -> {
            final View view = findViewById(R.id.container_wherigo);
            if (view != null) {
                view.setVisibility(WherigoGame.get().isPlaying() ? View.VISIBLE : GONE);
            }
        });
    }
to be called by map fragments' observers for zoom level change
main/src/main/java/cgeo/geocaching/unifiedmap/UnifiedMapActivity.java