1

現在、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());

正直なところ、このコードで何が起こっているのかはまだ完全には理解していません。説明がどこにあるかを誰かが知っていれば、それもありがたいです。

4

1 に答える 1

0

アプリがマップ タイルを変更Activityすると、マップの表示が再開されます。非効率的ですが、少なくとも機能します。

また、これはマップのダウンロードに関する投稿です。役立つかもしれません。 https://groups.google.com/d/msg/osmdroid/-0wc7xfJfvA/nK9NZPtS7IIJ

于 2012-07-27T10:19:49.200 に答える