Я пытаюсь загрузить источник плитки, но по какой-то причине он работает. Вот мой код:Загрузка Tile Source
final IRegisterReceiver registerReceiver = new SimpleRegisterReceiver(this);
// Create a custom tile source
final ITileSource tileSource = TileSourceFactory.MAPNIK;
// Create a file cache modular provider
final TileWriter tileWriter = new TileWriter();
final MapTileFilesystemProvider fileSystemProvider = new MapTileFilesystemProvider(registerReceiver, tileSource);
File myMapTileSource = new File(mapsDirectory.getPath()+File.separator+"Lisboa.gemf");
// Create an archive file modular tile provider
IArchiveFile[] archives = { ArchiveFileFactory.getArchiveFile(myMapTileSource) };
MapTileFileArchiveProvider fileArchiveProvider = new MapTileFileArchiveProvider(registerReceiver, tileSource, archives);
// Create a download modular tile provider
final NetworkAvailabliltyCheck networkAvailablilityCheck = new NetworkAvailabliltyCheck(this);
final MapTileDownloader downloaderProvider = new MapTileDownloader(tileSource, tileWriter, networkAvailablilityCheck);
// Create a custom tile provider array with the custom tile source and the custom tile providers
final MapTileProviderArray tileProviderArray = new MapTileProviderArray(tileSource, registerReceiver, new MapTileModuleProviderBase[] { fileSystemProvider, fileArchiveProvider, downloaderProvider });
// Create the mapview with the custom tile provider array
mMapView = new MapView(this, 256, new DefaultResourceProxyImpl(this), tileProviderArray);
mMapView.setUseDataConnection(false);
почему это работает, и я могу увидеть карту лиссабон в автономном режиме.
если я переключить линию
File myMapTileSource = new File(mapsDirectory.getPath()+File.separator+"Lisboa.gemf");
для
File myMapTileSource = new File(mapsDirectory.getPath()+File.separator+"Lissabon.osm");
это doenst работу. Он возвращает ошибку «Ошибка загрузки плитки» из MapTileFileArchiveProvider.
Файл gemf был создан в MOBAC. Файл osm был загружен с here.
Может ли кто-нибудь объяснить мне, почему это работает?
Вы правы. Я думал, что файлы gemf являются источником плитки. У меня, вероятно, была плохая интерпретация того, что я читал. osm - это XML-файл формата метаданных. [source] (http://wiki.openstreetmap.org/wiki/OSM_XML) Итак, если я хочу загрузить пользовательскую карту с помощью osmdroid, мне нужно будет получить источник плитки из «zip», «sqlite», mbtiles "или" gemf "? который вы бы предложили? – Short
Я верю, что слышал о проблемах с быстродействием с zip-файлами, когда они становятся большими, поэтому я бы избегал этого. У меня были хорошие результаты с помощью gemf. Mbtiles использует sqlite в своем ядре, и я тоже хорошо слышу об этом! – kurtzmarc
Можно ли создать mbtile в MOBAC? – Short