在我的应用程序中,我根据用户在首选项中的选择设置(在线)图 block 来源(只有 2 个可能的选项 - UMP 和默认值,即 OpenStreetMaps)。以下是我如何将图 block 的来源从默认值更改为:
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);
}
我的问题是:如何将图 block 提供程序设置回 OSMDroid 的默认值?在这种情况下,tileProvider.detach()
可以工作吗?
最佳答案
您不想在更改 ITileSource 时创建新的 TilesOverlay。您可以调用
mapView.setTileSource(tileSource);
这会将您的新图 block 源应用到现有的 TilesOverlay。
如果您想返回到默认图 block 源,您可以调用
mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
关于java - 将 OSMDroid 的 map 图 block 提供程序更改回默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18816886/