Я огляделся и не могу найти ответ на то, что, надеюсь, довольно просто, чтобы достичь this вопрос казался похожим, но ответа не получено! Так что проблема в этом; У меня отсутствует тайлов на андроид устройства здесь:OSMdroid - невозможно загрузить офлайн-карту из пользовательского местоположения
/sdcard/application-name/uuid/tiles
и я поставил кэш OSM так:
File applicationDir = new File(Environment.getExternalStorageDirectory(), File.separator + "application-name" + File.separator + "uuid" + File.separator);
OpenStreetMapTileProviderConstants.setCachePath(applicationDir.getAbsolutePath());
Затем я создал TileSource:
ITileSource tileSource = new XYTileSource ("tiles", 0, 18, 256, ".png", new String[]{});
и TileProvider:
tileProvider = new MapTileProviderBasic(getActivity());
tileProvider.setTileSource(tileSource);
Когда я запускаю мое приложение, я получаю последовательность эти:
Error downloading MapTile: /15/16000/9960
java.lang.IllegalArgumentException: n <= 0: 0
at java.util.Random.nextInt(Random.java:175)
at org.osmdroid.tileprovider.tilesource.OnlineTileSourceBase.getBaseUrl(OnlineTileSourceBase.java:33)
at org.osmdroid.tileprovider.tilesource.XYTileSource.getTileURLString(XYTileSource.java:19)
at org.osmdroid.tileprovider.modules.MapTileDownloader$TileLoader.loadTile(MapTileDownloader.java:171)
at org.osmdroid.tileprovider.modules.MapTileModuleProviderBase$TileLoader.run(MapTileModuleProviderBase.java:291)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:841)
Предположительно, потому что местные плитки не найдены, и в конечном счете MapTileProviderBasic падает на MapTileDownloader и barfs, потому что нет онлайн плиток.
Любые предложения с благодарностью получены! Спасибо.
вы пробовали писать путь самостоятельно, чтобы увидеть, что происходит? –
Я не думаю, что путь - это проблема, когда я его жестко запрограммировал, но все равно не удалось.Я думаю, что проблема связана с Источником или Провайдером. – Nome
Я вернусь к вам через пару часов, если увижу что-нибудь, мне придется сравнить с моим кодом, потому что я чувствую, что мой не сильно отличается от вашего. –