运行Osmdroid时交换和加载磁贴

时间:2012-07-27 00:11:56

标签: android osmdroid

我目前正在使用带有zip格式的离线地图的osmdroid,我想在我的应用程序运行时交换已为新图块加载的图块。但是,我不知道如何在不退出应用程序的情况下加载新的磁贴。

当我已经为该区域加载了图块时,如何强制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());

说实话,我还没有完全理解这段代码发生了什么,如果有人知道解释的地方也会受到赞赏。

1 个答案:

答案 0 :(得分:0)

当我的应用更改地图图块时,它只会重新启动显示地图的Activity。它效率低下,但至少它有效。

这也是关于下载地图的帖子,也许这很有帮助。 https://groups.google.com/d/msg/osmdroid/-0wc7xfJfvA/nK9NZPtS7IIJ