@Override public void updateMapLayer() { MapType mapType = Controller.getInstance().getPreferencesManager().getMapType(); if (mapType == currentMapType) return; currentMapType = mapType; if (customTileOverlay != null) customTileOverlay.remove(); customTileOverlay = null; switch (mapType) { case GoogleNormal: googleMap.setMapType(MAP_TYPE_NORMAL); return; case GoogleSatellite: googleMap.setMapType(MAP_TYPE_SATELLITE); return; case GoogleTerrain: googleMap.setMapType(MAP_TYPE_TERRAIN); return; case GoogleHybrid: googleMap.setMapType(MAP_TYPE_HYBRID); return; } googleMap.setMapType(MAP_TYPE_NONE); // Don't display any google layer UrlTileProvider provider = getTileProvider(mapType); if (provider != null) { customTileOverlay = googleMap.addTileOverlay(new TileOverlayOptions().tileProvider(provider)); customTileOverlay.setZIndex(-100); } }