Это старая версия документа.
Здесь пока ничего не написано…
Сочетает в себе преимущества хранения относительно небольшого количества файлов и возможности работы с версиями снимков.
Если мы хотим создать новый версионный кэш, который будем наполнять путём скачивания, нужно всего лишь указать в zmp параметр CacheType=61. Для хранения версионного кэша Беркли в программе предусмотрена папка cache_dbv, поэтому по умолчанию новый кэш будет создан в этой папке. Однако нет проблем поместить этот кэш и в основную папку cache, нужно лишь указать соответствующий путь в настройках программы. Перед скачиванием снимков нужно указать название версии, в которую будут помещаться тайлы. Это можно сделать в окне «Параметры карты». Обычно название версии представляет собой её номер в соответствии с нумерацией картсервиса. Скачав снимки указанной версии, мы будем иметь возможность в дальнейшем проверять идентичность скачанных тайлов и тайлов, уже имеющихся в кэше, и в случае их совпадения не сохранять дублирующиеся тайлы.
Целью данной операции является возможность дополнять имеющийся кэш новыми версиями. Для этого необходимо воспользоваться функцией Управления кэшем. Возможны следующие варианты:
Заполняем опции Управления кэшем, указывая в верхней части окна параметры исходного кэша, опцию Process only tiles with version: (Обрабатывать только тайлы версии:) и поле с названием версии оставляем пустыми, так как наш исходный кэш неверсионный. В нижней части окна указываем параметры целевого кэша, формат выбираем BerkeleyDB (версионный), ставим галку на опции Set same version for all processed tiles: (Установить единую версию для всех обрабатываемых тайлов:) и записываем в соответствующее поле название версии. Папка целевого кэша должна быть создана заранее. Нажимаем «Начать» и ждём окончания процесса. Для нового кэша необходимо создать zmp, в котором должна быть запись CacheType=61.
Здесь процесс несколько сложнее. Версионный кэш «старого образца», как правило, содержит неверсионную часть, которая была скачана до появления возможности сохранять версии, и скачанные позднее версионные части. В зависимости от размеров каждой из частей наши действия могут быть разными.
В этом случае проще и быстрее будет перенести все части по очереди в новое версионное хранилище. При этом для неверсионной части опцию Process only tiles with version: и поле с названием версии оставляем пустыми, а в целевом кэше, наоборот, включаем опцию Set same version for all processed tiles: и вписываем название версии. Для версионных частей требуется указать как версию источника, так и версию назначения. Для нового версионного кэша необходимо создать zmp.
В этом случае быстрее будет её не переносить в новое хранилище, а оставить в старом, преобразовав его в версионное нового образца. При этом неверсионную часть необходимо сначала переместить в другое хранилище, а затем из другого хранилища переместить в версионное, задав название версии.
Операция состоит из следующих этапов:
Нам нужно извлечь неверсионную часть кэша и сохранить её на время. Удобнее воспользоваться целевым форматом SAS.Планета. Важно, чтобы тайлы перемещались, а не копировались, иначе невозможно будет вставить ранее неверсионную часть обратно.
Далее нам понадобятся утилиты для работы с Беркли. Запускаем sdb_util.exe, указываем наш исходный кэш и проводим над ним две операции: Recover environment и Prepare cache for backup (reset LSN). Затем перемещаем кэш в папку cache_dbv (если необходимо) и меняем расширения всех файлов *.sdb на *.sdbv, а всех файлов *.tne - на *.tnev.
Это сделать просто, см. Исходный кэш неверсионный (Беркли или любой другой).
Усовершенствованная операция копирования позволяет указывать название версии, в которую будут скопированы или перемещены тайлы. Кроме того, опция Make subfolder with map path name (Создать вложенную папку с названием карты) может быть отключена, что позволяет копировать в один и тот же кэш отдельные снимки под одной или под разными версиями.
Нельзя применять операцию перемещения данных из одной версии кэша в другую версию этого же кэша. Это ведёт к невозвратимой потере данных, так как каждый перемещаемый тайл проверяется на идентичность существующему, то есть самому себе. Так как идентичность налицо, «вновь прибывший» тайл не сохраняется, а старый удаляется, потому что задано перемещение. В случае, когда задано копирование, кэш никак не изменится, но будет впустую потеряно время. Чтобы переместить часть информации в другую версию того же кэша, следует сначала переместить её в отдельный кэш, а уже из него вернуть в первоначальный под другой версией.