2

在我的应用程序中,我根据用户在首选项中的选择设置(在线)图块来源(只有 2 个选项可能 - 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);
}

我的问题是:如何将 tile 提供程序设置回 OSMDroid 的默认值tileProvider.detach()在这种情况下可以工作吗?

4

1 回答 1

3

您不想在更改 ITileSource 时创建新的 TilesOverlay。你可以打电话

mapView.setTileSource(tileSource);

这会将您的新平铺源应用到现有的 TilesOverlay。

如果您想返回到默认平铺源,您可以调用

mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
于 2013-09-15T20:26:28.010 回答