SASGIS

Веб-картография и навигация

SAS.Wiki

Веб-картография и навигация

Инструменты пользователя

Инструменты сайта


версионный_кэш

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

версионный_кэш [26/06/2013 20:20]
91.203.67.165 создано
версионный_кэш [04/03/2014 05:15] (текущий)
Строка 1: Строка 1:
 [[главная|Главная страница]] [[главная|Главная страница]]
  
-Тайловый версионный кэш +====== ​Тайловый версионный кэш ​====== 
-Версионный кэш Беркли+Здесь пока ничего не написано... 
 + 
 +====== ​Версионный кэш Беркли ​====== 
 +Сочетает в себе преимущества хранения относительно небольшого количества файлов и возможности работы с версиями снимков. 
 +====Создание версионного кэша "с нуля"​==== 
 +Если мы хотим создать новый версионный кэш, который будем наполнять путём скачивания,​ нужно всего лишь указать в zmp параметры **CacheType=61** и **Version=//​Название версии по умолчанию//​**. Для хранения версионного кэша Беркли в программе предусмотрена папка cache_dbv, поэтому по умолчанию новый кэш будет создан в этой папке. Однако нет проблем поместить этот кэш и в основную папку cache, нужно лишь указать соответствующий путь в настройках программы. 
 +Перед скачиванием снимков нужно указать название версии,​ в которую будут помещаться тайлы. Это можно сделать в окне "​Параметры карты"​. Обычно название версии представляет собой её номер в соответствии с нумерацией картсервиса. Скачав снимки указанной версии,​ мы будем иметь возможность в дальнейшем проверять идентичность скачиваемых тайлов тайлам,​ уже имеющимся в кэше, и в случае их совпадения не сохранять дублирующиеся тайлы. 
 +====Работа с версионным кэшем Беркли==== 
 +При выборе из списка карты с версионным кэшем Беркли будет автоматически установлена версия по умолчанию,​ указанная в zmp. В дальнейшем можно будет изменить "​рабочую"​ версию,​ введя её название в поле **Версия** окна **Параметры карты**. В "​рабочую"​ версию сохраняются скачиваемые тайлы, поэтому будьте внимательны и проверяйте URL перед тем, как начать скачивание. Для "​рабочей"​ версии строится карта заполнения. 
 + 
 +При наличии в кэше нескольких версий снимков можно выбирать,​ тайлы какой из версий будут отображаться на экране. Для этого вызываем контекстное меню и выбираем пункт **Версия**. Если для данного места экрана существует несколько версий тайлов,​ их список будет виден в меню. Установив галку на нужной версии,​ мы будем видеть только тайлы этой версии. Чтобы видеть тайлы всех возможных версий для данного места, следует установить галку на опции **Отображать предыдущие версии**. Однако следует учитывать,​ что в данном случае карта заполнения будет строиться для всех доступных версий кэша. Если кликнуть на опции **Сбросить**,​ то ни одна из версий не будет "​рабочей"​. 
 + 
 +При скачивании каждый тайл проверяется на идентичность существующему,​ причём проверяются все доступные версии. Если тайла, идентичного скачанному,​ не существует,​ то скачанный тайл сохраняется,​ в противном случае - пропускается. Поэтому версия,​ скачанная первой,​ будет иметь наибольшее количество тайлов,​ а последующие версии - гораздо меньше (для одной и той же выделенной области,​ конечно). 
 +====Создание версионного кэша из ранее скачанного==== 
 +Целью данной операции является возможность дополнять имеющийся кэш новыми версиями. Для этого необходимо воспользоваться функцией **Управления кэшем**. Напомню,​ что данная функция обрабатывает весь кэш (или всю версию) целиком,​ в отличие от **Копирования**,​ при котором обрабатывается содержимое выделенной области. Возможны следующие варианты:​ 
 + 
 +==== Исходный кэш неверсионный (Беркли или любой другой) ==== 
 +Заполняем опции **Управления кэшем**,​ указывая в верхней части окна параметры исходного кэша, опцию **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** (Создать вложенную папку с названием карты) может быть отключена,​ что позволяет копировать в один и тот же кэш отдельные снимки под одной (если они не накладываются друг на друга) или под разными версиями. 
 +===Внимание!=== 
 +Нельзя применять операцию **перемещения** данных из одной версии кэша в другую версию **этого же** кэша. Это ведёт к невозвратимой потере данных,​ так как каждый перемещаемый тайл проверяется на идентичность существующему,​ то есть самому себе. Так как идентичность налицо,​ "​вновь прибывший"​ тайл не сохраняется,​ а старый удаляется,​ потому что задано перемещение. В случае,​ когда задано копирование,​ кэш никак не изменится,​ но будет впустую потеряно время. 
 +Чтобы переместить часть информации в другую версию того же кэша, следует сначала переместить её в отдельный кэш, а уже из него вернуть в первоначальный под другой версией.