将OSMDroid的地图图块提供程序更改回默认值

时间:2013-09-15 19:58:39

标签: java android android-mapview osmdroid

在我的应用程序中,我根据用户在首选项中的选择设置(在线)切片源(可能只有2个选项 - UMP和默认值,即OpenStreetMaps)。以下是我从默认值中更改tile 的来源的方法:

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()会在这种情况下起作用吗?

1 个答案:

答案 0 :(得分:3)

更改ITileSource时,您不希望创建新的TilesOverlay。你可以打电话

mapView.setTileSource(tileSource);

这会将您的新磁贴源应用于现有的TilesOverlay。

如果您想返回默认磁贴源,可以调用

mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);