Это старая версия документа.
Здесь пока ничего не написано…
Сочетает в себе преимущества хранения относительно небольшого количества файлов и возможности работы с версиями снимков.
Если мы хотим создать новый версионный кэш, который будем наполнять путём скачивания, нужно всего лишь указать в 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 (Создать вложенную папку с названием карты) может быть отключена, что позволяет копировать в один и тот же кэш отдельные снимки под одной (если они не накладываются друг на друга) или под разными версиями.
Нельзя применять операцию перемещения данных из одной версии кэша в другую версию этого же кэша. Это ведёт к невозвратимой потере данных, так как каждый перемещаемый тайл проверяется на идентичность существующему, то есть самому себе. Так как идентичность налицо, «вновь прибывший» тайл не сохраняется, а старый удаляется, потому что задано перемещение. В случае, когда задано копирование, кэш никак не изменится, но будет впустую потеряно время. Чтобы переместить часть информации в другую версию того же кэша, следует сначала переместить её в отдельный кэш, а уже из него вернуть в первоначальный под другой версией.