Обычно JOSM хранит загруженные квадраты подложки TMS (Bing, IRS, Mapnik и т.д.) в каталоге JMapViewerTiles_… в папке временных файлов.
При этом все тысячи и сотни тысяч файлов Bing оказываются лежащими в одном каталоге. Даже их удаление может занимать десятки минут, не говоря о проблемах для антивирусов.
Обычно для хранения кучи тайлов используется простая база данных (например, SQLite в формате MBTiles), в результате чего весь кэш Bing помещается в 1-2 файлах.
При обсуждении чистки кэша в теме Вопросы по JOSM и родилась идея аналогичного плагина для JOSM. От существующих форматов было решено отказаться из-за болшого размера кода СУБД или проблем сопряжения с Java.
В результате получился плагин для JOSM под названием ImageryCache, которых хранит весь кэш в файлах NoSQL базы MapDB (по совету Zverik).
Никакой настройки плагин не требует, просто установите его в JOSM новее 5779 и папки с файлами перестанут разрастаться.
Осторожно! Плагин экспериментальный. Потеря всего кэша из-за сбоя - пока вполне обычное явление (Старый кэш JOSM никуда не девается и может быть использован после отключения плагина). Так что в случае плохого соединения с интернетом решайте сами. Как плагин дружит c кэшем на SSD и флешках - не знаю. Но туда вообще ничего помногу не писать.
Внимание - при переходе с первой версии на вторую формат кэша поменялся. Во избежание ошибок лучше удалить файлы кэша вручную (касается тех, кто ставил плагин до 7 апреля)
Обновления:
15.03.2013: первая попытка
07.04.2013:
Обновил MapDB, загрузка тайлов перестала намертво виснуть в 20% случаев.
Теперь не обязательно ставить Java 1.7
Теги (информация о тайлах) корректно загружаются из базы, а не только сохраняются
Меньше глюков при закрытии JOSM во время загрузки (замечания freeExec)
Если файл используется другим JOSM, создаётся ещё один (Mapnik, Mapnik_1, Mapnik_2…) , наличие Mapnik_2.lock говорит о занятости (или некорректном завершении).
Все доступные файлы базы Mapnik, Mapnik_1, Mapnik_2 … склеиваются в один файл при запуске (можно исплользовать для объединения кэшей)
Если папки кэша не было, она создаётся (спасибо andygol)
Чего пока нет:
Чистки кэша. Он только растёт
Открытия кэша только для чтения.
Со временем надеемся внести данный функционал в ядро JOSM.
Совсем забыл написать - при переходе с первой версии на вторую формат кэша поменялся. Во избежание ошибок тем, кто ставил плагин до 7 апреля лучше удалить файлы кэша вручную (из меню JOSM будет чуть позже). У некоторых из-за этого (предположительно) даже JOSM вис на 20 секунд намертво. (добавил в шапку)
Кэш между сессиями сохраняется?
Например - работал с данными, была включена подложка, сохранил данные в файл .osm. Уехал за тридевять земель, где нет инета, открыл локальный файл и включил отображение подложки. Подложка будет видна? Можно заставить такой вариант работать?
А wms-подложки могут быть подобным образом слиты в один файл? Или, переформулировав вопрос, используются ли вообще wms-тайлы повторно?
А то я смотрю на десятки тысяч файлов кэша подложки кадастра, и мне грустно.
WMS теоретически должны использоваться повторно (вроде бы, фиксированные уровни зума теперь используются), но в однофайловом плагине не поддерживаются, т. к. слишком сложно.
Если папка не распухает при просмотре уже загруженных областей - тогда всё работает (проверять надо).
Присоединяюсь к благодарностям за плагин. Сегодня более часа пытался удалить папку с кешем на SSD - оказалось там более миллиона файлов и надо было “терпеливо подождать”. Но сложно ждать когда десяток минут система не реагирует на нажатия клавиатуры
Надеюсь теперь таких проблем не будет.
Кадастр почему то продолжает гадить тайлами — обнаружил их 800 мегабайт (в последнее время джосм временно зависал при включении кадастра). На всякий случай удалил каталог с кешем, но он благополучно восстановился, и так же благополучно наполняется опять. Так и должно быть?