Я играю с Osmdroid для использования в приложении.У меня уже есть сервер тайлов и я хочу использовать эти тайлы.Изучил документы, используемые setTileSource(new XYTileSource())
волшебство произошло.Я должен упомянуть, что документация немного устарела во многих частях.
Плитки вышеупомянутого сервера уже используются в приложении в другой функции.Как подсказывает логика, я хочу использовать одно и то же местоположение кеша, чтобы у меня не было дубликатов тайлов в системе.Снова через документы, использовал Configuration.getInstance().setOsmdroidTileCase(new File("path"))
и снова все идет просто отлично.Это было не так просто, поскольку в документации упоминается класс констант Osmdroids, который изменился в последней стабильной версии.
Затем последняя часть должна измениться с SqlTileWriter
на обычную TileWriter
, как мы уже имеемфайлы изображений, загруженные из другой функции.Это где я не могу понять это.Я использую:
MapTileProviderBasic tileProvider = new MapTileProviderBasic(getActivity(), new XYTileSource("My Tiles", 5, 16, 256, ".png",
new String[]{"SERVER_URL"}), new TileWriter());
mMap.setTileProvider(tileProvider);
, и все становится странным.Изображения на самом деле загружаются, но карта показывает только фон загрузки.В журналах я получил StorageUtils
, сообщающий, что хранилище недоступно для записи.Дали разрешения приложению, теперь доступно для записи, еще ничего.Я заметил, что кроме папки плиток были созданы файлы .db
, но таблица плиток пуста.Я вернулся к приведенному выше коду и заменил new TileWriter()
на new SQLTileWriter()
только для проверки работоспособности, и карта работает просто отлично, без каких-либо разрешений.
Итак, главный вопрос.Как вы переходите с SQL на хранилище TileWriter?