我目前正在使用 osmdroid 和 zip 格式的离线地图,我想在我的应用程序运行时将已加载的图块交换为新图块。但是,我不知道如何在不退出应用程序的情况下加载新图块。
当我已经为该区域加载了切片时,如何强制 osmdroid 从磁盘检索和加载切片?
如果这里有帮助的话,我最初用来加载图块的代码是:
File osmDir = new File("/mnt/sdcard/osmdroid");
File[] mapZips = osmDir.listFiles(new ZipFileFilter());
List<MapTileModuleProviderBase> overlayFileProvider = new ArrayList<MapTileModuleProviderBase>(mapZips.length);
myTileSource overlayFileTileSource = null;
IArchiveFile[] overlayFileArchive = new IArchiveFile[1];
for (File zip : mapZips)
{
overlayFileArchive[0] = ArchiveFileFactory.getArchiveFile(zip);
overlayFileTileSource = new myTileSource("MapquestOSM", null, 18, 18, 256, ".png");
overlayFileProvider.add(new MapTileFileArchiveProvider(new SimpleRegisterReceiver(getApplicationContext()), overlayFileTileSource, overlayFileArchive));
}
MapTileModuleProviderBase[] overlayFileProvider2 = new MapTileModuleProviderBase[overlayFileProvider.size()];
MapTileProviderArray overlayFileProviderArray1 = new MapTileProviderArray(overlayFileTileSource, null, overlayFileProvider.toArray(overlayFileProvider2));
overlayFileProviderArray1.setTileRequestCompleteHandler(mapView.getTileRequestCompleteHandler());
myTilesOverlay = new TilesOverlay(overlayFileProviderArray1, getApplicationContext());
老实说,我还不完全理解这段代码发生了什么,如果有人知道解释在哪里,那也将不胜感激。