在我的应用程序中,我正在根据用户在首选项中的选择设置(在线)磁贴源(只有两个可能的选项-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 provider设置回osmdroid的默认值?在这种情况下
tileProvider.detach()
是否有效? 最佳答案
更改ITileSource时,您不想创建新的TileOverlay。你可以打电话
mapView.setTileSource(tileSource);
这将把新的tile源应用到现有的tilesoverlay。
如果要返回到默认磁贴源,可以调用
mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);