2013-09-15 4 views
2

В моем приложении я устанавливаю (онлайн) источник плиток на основе выбора пользователя в настройках (возможны только два варианта - UMP и по умолчанию, то есть OpenStreetMaps). Вот как я могу изменить источник плитки от по умолчанию:Изменение поставщика плитки карты OSMDroid обратно по умолчанию

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() работать в этом случае?

ответ

3

Вы не хотите создавать новый TilesOverlay при изменении ITileSource. Вы можете позвонить по телефону

mapView.setTileSource(tileSource); 

и это применит ваш новый источник плитки к существующим TilesOverlay.

Если вы хотите, чтобы вернуться к исходной плитки по умолчанию вы можете позвонить

mapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE); 
+1

Спасибо. Это то, что я искал, но вместо этого я использовал «mapView.setTileSource (TileSourceFactory.MAPQUESTOSM)», и он сработал! –

+0

@ RicardoAppleton - это разные серверы плитки с разными плитами –

Смежные вопросы