nicht laden Ich habe mich umgesehen und kann keine Antwort auf was ich hoffe, ist eine ziemlich einfache Sache zu erreichen this Frage schien ähnlich, aber hat keine Antworten! Also das Problem ist das; Ich habe meine Offline-Karte Fliesen auf das Android-Gerät hier:OSMdroid - Offline-Kartenkacheln vom benutzerdefinierten Speicherort
/sdcard/application-name/uuid/tiles
und ich habe die OSM-Cache wie so gesetzt:
File applicationDir = new File(Environment.getExternalStorageDirectory(), File.separator + "application-name" + File.separator + "uuid" + File.separator);
OpenStreetMapTileProviderConstants.setCachePath(applicationDir.getAbsolutePath());
I aufgebaut dann die TileSource:
ITileSource tileSource = new XYTileSource ("tiles", 0, 18, 256, ".png", new String[]{});
und der TileProvider:
tileProvider = new MapTileProviderBasic(getActivity());
tileProvider.setTileSource(tileSource);
Wenn ich meine app laufen lasse, erhalte ich eine Folge davon:
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)
Vermutlich, weil die lokalen Fliesen nicht gefunden werden und die MapTileProviderBasic fällt schließlich auf die MapTileDownloader und es barfs, weil es keine Online-Fliesen sind.
Alle Vorschläge dankbar erhalten! Danke.
Haben Sie versucht, den Pfad zu schreiben selbst zu sehen, was passiert? –
Ich glaube nicht, dass der Pfad das Problem ist, als ich es fest codierte, scheiterte es immer noch. Ich denke, das Problem liegt bei der Quelle oder dem Provider. – Nome
Ich werde in ein paar Stunden zu dir zurückkommen, wenn ich etwas sehe, muss mit meinem Code vergleichen, weil ich denke, dass meins sich nicht viel von deinem unterscheidet. –