Java 更改OSMDroid';将平铺提供程序映射回默认值

Java 更改OSMDroid';将平铺提供程序映射回默认值,java,android,android-mapview,osmdroid,Java,Android,Android Mapview,Osmdroid,在我的应用程序中,我根据用户在首选项中的选择设置(在线)瓷砖来源(只有两个选项可用-UMP和默认,即OpenStreetMaps)。以下是我如何从默认设置更改磁贴的来源: SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(getBaseContext()); if (prefs.getString("map_source_preference", "osm") == "ump") {

在我的应用程序中,我根据用户在首选项中的选择设置(在线)瓷砖来源(只有两个选项可用-UMP和默认,即OpenStreetMaps)。以下是我如何从默认设置更改磁贴的来源:

SharedPreferences prefs = PreferenceManager
        .getDefaultSharedPreferences(getBaseContext());
if (prefs.getString("map_source_preference", "osm") == "ump") {
    final MapTileProviderBasic tileProvider = new MapTileProviderBasic(
            getApplicationContext());
    final ITileSource tileSource = new XYTileSource("UMP Tiles", null,
            3, 14, 256, ".png", "http://tiles.ump.waw.pl/ump_tiles/");
    tileProvider.setTileSource(tileSource);
    final TilesOverlay tilesOverlay = new TilesOverlay(tileProvider,
            this.getBaseContext());
    mapView.getOverlays().add(tilesOverlay);
}

我的问题是:如何将磁贴提供程序设置回OSMDroid的默认值?
tileProvider.detach()
在这种情况下有效吗?

当您更改TileSource时,您不想创建新的TileOverlay。你可以打电话

mapView.setTileSource(tileSource);
mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
这会将新的磁贴源应用于现有的磁贴Overlay

如果要返回默认的磁贴源,可以调用

mapView.setTileSource(tileSource);
mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);

谢谢这就是我要找的,但是我使用了
mapView.setTileSource(TileSourceFactory.MAPQUESTOSM)成功了@RicardoAppleton他们是不同的tile服务器,具有不同的tile