SASGIS

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

SAS.Wiki

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

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

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


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

Различия

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

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

версионный_кэш [27/06/2013 12:42]
91.203.67.165
версионный_кэш [04/03/2014 05:15] (текущий)
Строка 7: Строка 7:
 Сочетает в себе преимущества хранения относительно небольшого количества файлов и возможности работы с версиями снимков. Сочетает в себе преимущества хранения относительно небольшого количества файлов и возможности работы с версиями снимков.
 ====Создание версионного кэша "с нуля"​==== ====Создание версионного кэша "с нуля"​====
 +Если мы хотим создать новый версионный кэш, который будем наполнять путём скачивания,​ нужно всего лишь указать в zmp параметры **CacheType=61** и **Version=//​Название версии по умолчанию//​**. Для хранения версионного кэша Беркли в программе предусмотрена папка cache_dbv, поэтому по умолчанию новый кэш будет создан в этой папке. Однако нет проблем поместить этот кэш и в основную папку cache, нужно лишь указать соответствующий путь в настройках программы.
 +Перед скачиванием снимков нужно указать название версии,​ в которую будут помещаться тайлы. Это можно сделать в окне "​Параметры карты"​. Обычно название версии представляет собой её номер в соответствии с нумерацией картсервиса. Скачав снимки указанной версии,​ мы будем иметь возможность в дальнейшем проверять идентичность скачиваемых тайлов тайлам,​ уже имеющимся в кэше, и в случае их совпадения не сохранять дублирующиеся тайлы.
 +====Работа с версионным кэшем Беркли====
 +При выборе из списка карты с версионным кэшем Беркли будет автоматически установлена версия по умолчанию,​ указанная в zmp. В дальнейшем можно будет изменить "​рабочую"​ версию,​ введя её название в поле **Версия** окна **Параметры карты**. В "​рабочую"​ версию сохраняются скачиваемые тайлы, поэтому будьте внимательны и проверяйте URL перед тем, как начать скачивание. Для "​рабочей"​ версии строится карта заполнения.
  
-Если мы хотим создать новый ​версионный кэш, ​который будем наполнять путём скачивания, нужно всего лишь указать ​в 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:** (Обрабатывать только тайлы версии:​) и поле с названием версии оставляем пустыми,​ так как наш исходный кэш неверсионный. В нижней части окна указываем параметры целевого кэша, формат выбираем **BerkeleyDB (версионный)**,​ ставим галку на опции **Set same version for all processed tiles:** (Установить единую версию для всех обрабатываемых тайлов:​) и записываем в соответствующее поле название версии. Папка целевого кэша должна быть создана заранее. Нажимаем "​Начать"​ и ждём окончания процесса. Для нового кэша необходимо создать zmp, в котором должна быть запись **CacheType=61**.
  
 ==== Исходный кэш версионный Беркли "​старого образца"​ ==== ==== Исходный кэш версионный Беркли "​старого образца"​ ====
Строка 32: Строка 35:
  
 ===== Выделение неверсионной части кэша в отдельный кэш ===== ===== Выделение неверсионной части кэша в отдельный кэш =====
-Нам нужно извлечь неверсионную часть кэша и сохранить её на время. Удобнее воспользоваться целевым форматом SAS.Планета. Важно, чтобы тайлы **перемещались**,​ а не копировались,​ иначе не избежать ​дублирования.+Нам нужно извлечь неверсионную часть кэша и сохранить её на время. Удобнее воспользоваться целевым форматом SAS.Планета. Важно, чтобы тайлы **перемещались**,​ а не копировались,​ иначе невозможно ​будет вставить ранее неверсионную часть обратно.
 ===== Обработка оставшегося версионного кэша ===== ===== Обработка оставшегося версионного кэша =====
 Далее нам понадобятся утилиты для работы с Беркли. Запускаем **sdb_util.exe**,​ указываем наш исходный кэш и проводим над ним две операции:​ **Recover environment** и **Prepare cache for backup (reset LSN)**. Затем перемещаем кэш в папку cache_dbv (если необходимо) и меняем расширения всех файлов *.sdb на *.sdbv, а всех файлов *.tne - на *.tnev. Далее нам понадобятся утилиты для работы с Беркли. Запускаем **sdb_util.exe**,​ указываем наш исходный кэш и проводим над ним две операции:​ **Recover environment** и **Prepare cache for backup (reset LSN)**. Затем перемещаем кэш в папку cache_dbv (если необходимо) и меняем расширения всех файлов *.sdb на *.sdbv, а всех файлов *.tne - на *.tnev.
Строка 38: Строка 41:
 Это сделать просто,​ см. **Исходный кэш неверсионный (Беркли или любой другой)**. Это сделать просто,​ см. **Исходный кэш неверсионный (Беркли или любой другой)**.
  
-====Копирование в версионный кэш==== +====Копирование в версионный кэш ​Беркли==== 
-Усовершенствованная операция копирования позволяет указывать название версии,​ в которую будут скопированы или перемещены тайлы. Кроме того, опция **Make subfolder with map path name** (Создать вложенную папку с названием карты) может быть отключена,​ что позволяет копировать в один и тот же кэш отдельные снимки. ​+Усовершенствованная операция копирования позволяет указывать название версии,​ в которую будут скопированы или перемещены тайлы. Кроме того, опция **Make subfolder with map path name** (Создать вложенную папку с названием карты) может быть отключена,​ что позволяет копировать в один и тот же кэш отдельные снимки ​под одной (если они не накладываются друг на друга) или под разными версиями. 
 +===Внимание!=== 
 +Нельзя применять операцию **перемещения** данных из одной версии кэша в другую версию **этого же** кэша. Это ведёт к невозвратимой потере данных,​ так как каждый перемещаемый тайл проверяется на идентичность существующему,​ то есть самому себе. Так как идентичность налицо,​ "​вновь прибывший"​ тайл не сохраняется,​ а старый удаляется,​ потому что задано перемещение. В случае,​ когда задано копирование,​ кэш никак не изменится,​ но будет впустую потеряно время. 
 +Чтобы переместить часть информации в другую версию того же кэша, следует сначала переместить её в отдельный кэш, а уже из него вернуть в первоначальный под другой версией.