在我的应用程序中,我根据用户在首选项中的选择设置(在线)切片源(可能只有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()
会在这种情况下起作用吗?
答案 0 :(得分:3)
更改ITileSource时,您不希望创建新的TilesOverlay。你可以打电话
mapView.setTileSource(tileSource);
这会将您的新磁贴源应用于现有的TilesOverlay。
如果您想返回默认磁贴源,可以调用
mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);