12 | Документация

Настройка тайлового кэша

Для каждого картографического сервиса можно включить поддержку формирования тайлового кэша.
При наличии тайлового кэша ГИС-сервер может выдавать предварительно сформированные по заданной сетке изображения карты (тайлы) по указанному в веб-запросе экстенту. Это, в свою очередь, позволяет увеличить скорость выдачи необходимого изображения карты, в случае если в запросе к картографическому сервису используются настройки по умолчанию по раскраске и видимости слоев и нет наложенного пользователем фильтра на слои.
Включить поддержку растрового и (или) векторного кэша для картографического сервиса можно в разделе Возможности окна свойств сервиса (см. подробнее п. 4.4.2 настоящего документа).
Для перехода к отдельным настройкам тайлового кэша необходимо перейти к разделу Тайловый кэш свойств сервиса.
Настройки для формирования тайлового кэша сгруппированы следующим образом:
  • Общие параметры;
  • Масштабный ряд;
  • Начальная точка;
  • Параметры предварительной генерации кэша при изменении в геоданных;
  • Параметры оптимизации хранения кэша в файловом хранилище;
  • Области начального интереса.

Общие параметры

Группа настроек включает в себя параметры создаваемых тайлов, а также продолжительность хранения тайлов и тайлового кэша (см. Рисунок 37 ):
  • Время жизни тайлов - период актуальности сформированных тайлов;
  • Укажите дни (первое поле ввода), часы и минуты (второе поле ввода) периода времени жизни тайлов.
  • По истечении указанного времени тайлы считаются устаревшими, и при следующем запросе к ним они генерируются заново.
  • При указании нулей (по умолчанию) тайлы считаются актуальными всегда.
  • Продолжительность клиентского кэширования тайлов - время, в течение которого клиент может использовать локальный кэш браузера, не запрашивая обновленные тайлы у сервера;
  • Укажите дни (первое поле ввода), часы и минуты (второе поле ввода).
  • При указании нулей (по умолчанию) тайлы всегда будут запрашиваться с сервера. Тайл с сервера отдается с указанием версии файла. При запросе тайла с сервера браузер может получить только версию тайла, и скачивать тайл с сервера, только если его версия изменилась.
  • Максимальный размер кэша ;
  • Задайте значение в мегабайтах (Мб).
  • Размер изображения (px) - 256, 512, 1024;
  • Задайте размер тайла в пикселях (px), по умолчанию - 256.
  • DPI изображения ;
  • Задайте разрешение тайла в точках на дюйм (dpi), по умолчанию - 96.
  • Изображение с прозрачным фоном ;
  • По умолчанию опция включена, тайлы создаются с прозрачным фоном.
  • Отключите опцию, если тайлы нужны для использования в качестве непрозрачной подложки для других данных.
  • Формат - формат создаваемых тайлов.
Поддерживается один формат данных для тайлов - PNG8.
Рисунок 37 - Общие настройки тайлового кэша

Масштабный ряд

В данной группе параметров задаются масштабы, при которых будут отображаться созданные тайлы. Можно выбрать между двумя вариантами масштабного ряда для построения тайлового кэша картографического сервиса: использовать стандартный масштабный ряд или настроить специальный (см. Рисунок 38 ).
Рисунок 38 - Группа параметров масштабного ряда тайлового кэша
Отметьте вариант Стандартный , чтобы использовать стандартный масштабный ряд. Дополнительно с помощью ползунка задайте необходимый диапазон масштабов из стандартного ряда.
Отметьте вариант Специальный , чтобы настроить масштабный ряд, отличный от стандартного. Нажмите на кнопку Добавить масштаб и в появившемся поле ввода укажите необходимое значение. Добавьте столько уровней масштаба, сколько требуется.

Начальная точка

Тайлы создаются по сетке от определенной точки. В данном разделе задаются координаты X и Y точки отсчета тайлов - начальной точки.
Укажите значения X и Y в соответствующих полях ввода (см. Рисунок 39 ). Значения указываются в единицах измерения системы координат сервиса.
Рисунок 39 - Координаты начальной точки отчета тайлов

Параметры перегенерации кэша при изменении в геоданных

В данной группе настраивается мониторинг изменений в геоданных, на основе которых выполняется перестроение тайлового кэша (см. Рисунок 40 ).
Рисунок 40 - Настройки мониторинга геоданных для перегенерации тайлового кэша
Для отслеживания изменений в геоданных предварительно необходимо сделать следующее:
  • создать в базе данных служебную таблицу, где будут храниться записи об изменениях;
  • настроить на уровне базы данных SQL-триггеры на те наборы геоданных, изменения в которых будут отслеживаться.
Служебная таблица для отслеживания изменений, имя по умолчанию - elitegis_changed_extent_log , обязательно должна иметь следующие поля:
  • id типа Integer - идентификатор записи по порядку;
  • target_table_name типа Text - имя набора данных, где были найдены изменения;
  • xmincoord типа Double - экстент измененного объекта;
  • xmaxcoord типа Double;
  • ymincoord типа Double;
  • ymaxcoord типа Double;
  • spatial_reference_id типа Integer - WKID системы координат набора данных;
  • edited_date типа Timestamp without time zone - дата и время изменения.
Служебную таблицу elitegis_changed_extent_log можно создать с помощью инструмента геообработки Создание служебных таблиц (см. п. 13 ).
Пример текста SQL-функции в базе данных PostgreSQL (при условии, что поле геометрии называется geom), которая делает записи об обнаруженных изменениях в служебную таблицу elitegis_changed_extent_log :
CREATE OR REPLACE FUNCTION public.log_extent_changes_trigger()
RETURNS trigger
LANGUAGE 'plpgsql'
COST 100
VOLATILE NOT LEAKPROOF
AS $BODY$
BEGIN
IF (OLD.geom IS NOT NULL AND ST_IsEmpty(OLD.geom) = false) THEN
BEGIN
INSERT INTO public.elitegis_changed_extent_log (edited_date, target_table_name, xmincoord, xmaxcoord, ymincoord, ymaxcoord, spatial_reference_id)
VALUES (CURRENT_TIMESTAMP, concat(TG_TABLE_SCHEMA, '.', TG_TABLE_NAME), ST_XMin(OLD.geom), ST_XMax(OLD.geom), ST_YMin(OLD.geom), ST_YMax(OLD.geom), ST_SRID(OLD.geom));
END;
END IF;
IF (NEW.geom IS NOT NULL AND ST_IsEmpty(NEW.geom) = false) THEN
BEGIN
INSERT INTO public.elitegis_changed_extent_log (edited_date, target_table_name, xmincoord, xmaxcoord, ymincoord, ymaxcoord, spatial_reference_id)
VALUES (CURRENT_TIMESTAMP, concat(TG_TABLE_SCHEMA, '.', TG_TABLE_NAME), ST_XMin(NEW.geom), ST_XMax(NEW.geom), ST_YMin(NEW.geom), ST_YMax(NEW.geom), ST_SRID(NEW.geom));
END;
END IF;
RETURN NULL;
END;
$BODY$;
Пример текста SQL-триггера в базе данных PostgreSQL, который отслеживает изменения в наборе данных myschema.mytable и запускает вышеприведенную SQL-функцию для записи изменений в таблицу elitegis_changed_extent_log :
CREATE TRIGGER log_extent_changes
AFTER INSERT OR DELETE OR UPDATE
ON myschema.mytable
FOR EACH ROW
EXECUTE FUNCTION public.log_extent_changes_trigger();
После создания служебных таблиц и SQL-триггеров можно настраивать регулярную проверку изменений.
Чтобы регулярно проверять данные сервиса на наличие изменений, отметьте опцию Включить мониторинг изменений в геоданных .
Задайте интервал времени между проверками изменений (параметр Частота проверки изменений ) в часах, минутах и секундах.
По каким дням разрешено проверять изменения в геоданных, настраивается в подразделе Временное окно для мониторинга . Чтобы использовать настройки временного окна, включите опцию Использовать временное окно .
Задайте параметры временного окна:
  • По времени с … по … - задайте период времени в течение дня, когда необходимо проверять данные сервиса на наличие изменений.
Укажите, в какие дни разрешено проверять данные сервиса на наличие изменений:
  • Только в выбранные месяцы - геоданные будут проверяться только в указанные месяцы;
  • Выберите из выпадающего списка необходимые месяцы - январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь.
  • Только в выбранные дни - геоданные будут проверяться только в указанные числа месяца;
  • Выберите из выпадающего списка необходимые числа месяца - от 1 до 31. Если выбрано 31 (или 29, или 30 для февраля), но такого числа в месяце нет, геоданные будут проверяться в последний день месяца.
  • Только в выбранные дни недели - геоданные будут проверяться только в указанные дни недели;
  • Выберите из выпадающего списка необходимые дни недели - понедельник, вторник, среда, четверг, пятница, суббота, воскресенье.
  • Только в выбранные недели месяца - геоданные будут проверяться только в указанные недели месяца.
  • Выберите из выпадающего списка необходимые недели месяца - 1, 2, 3, 4, последняя.
Укажите, где находятся служебные таблицы elitegis_changed_extent_log для хранения записей об изменениях в геоданных. Нажмите на кнопку Таблицы для отслеживания изменений , и в открывшемся окне нажмите на кнопку + Добавить таблицу (см. Рисунок 41 ).
Рисунок 41 - Настройка таблиц для отслеживания изменений
Укажите следующие параметры таблицы для отслеживания изменений (см. Рисунок 42 ):
  • База данных - имя базы данных, в которой находится таблица для отслеживания изменений в геоданных;
  • Выберите из выпадающего меню подключение к необходимой базе данных. Подключения к базам данных настраиваются в разделе Базы данных Глобальных настроек CoGIS Server , см. подробнее Руководство администратора по установке и настройке CoGIS .
  • Схема БД - схема базы данных, в которой хранится таблица для отслеживания изменений в геоданных;
  • Если параметр не задан, используется схема данных по умолчанию (для баз данных PostgreSQL по умолчанию используется схема данных public ).
  • Таблица - имя таблицы для записей об изменениях в геоданных;
  • По умолчанию используется имя elitegis_changed_extent_log .
  • SQL-фильтр - при необходимости задайте SQL-фильтр, чтобы тайловый сервис запросил нужные строки из таблицы.
Рисунок 42 - Добавление таблицы для отслеживания изменений
По нажатии на кнопку ОК таблица для отслеживания изменений добавится в список. Список добавленных таблиц также представляет собой таблицу (см. Рисунок 43 ).
Рисунок 43 - Список таблиц для отслеживания изменений в геоданных
Для каждой таблицы из списка доступны следующие действия:
  • Редактировать - настройки добавленной таблицы из списка можно изменить;
  • Нажмите на кнопку и в открывшемся окне измените нужные параметры.
  • Удалить - выбранная таблица будет удалена из списка.
Отметьте таблицу, которую требуется удалить, и нажмите на кнопку .

Оптимизация хранения кэша в файловом хранилище

В данной группе находятся настройки оптимизации хранения кэша в файловом хранилище (см. Рисунок 44 ).
Информация на диске хранится непоследовательными блоками (фрагментами). Чем больше таких непоследовательно идущих блоков информации, тем выше уровень фрагментации и тем ниже скорость доступа к информации.
Для уменьшения уровня фрагментации при хранении тайлового кэша выполняют оптимизацию хранения - логическое упорядочивание блоков информации.
Для регулярного проведения упорядочивания данных тайлового кэша на диске включите опцию Включить регулярное выполнение оптимизации .
Задайте допустимый уровень фрагментации (параметр Коэффициент фрагментации ). Минимальный уровень - 1, то есть все блоки информации расположены последовательно. По умолчанию допустимый уровень фрагментации - 2.
Задайте период времени в течение дня, когда необходимо выполнять оптимизацию хранения тайлового кэша (параметр По времени с … по … ).
Рисунок 44 - Настройка оптимизации хранения кэша
Укажите, в какие дни может выполняться оптимизация (см. Рисунок 45 ):
  • Только в выбранные месяцы - оптимизация может выполняться только в указанные месяцы;
  • Выберите из выпадающего списка необходимые месяцы - январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь.
  • Только в выбранные дни - оптимизация может выполняться только в указанные числа месяца;
  • Выберите из выпадающего списка необходимые числа месяца - от 1 до 31. Если выбрано 31 (или 29, или 30 для февраля), но такого числа в месяце нет, оптимизация выполнится в последний день месяца.
  • Только в выбранные дни недели - оптимизация может выполняться только в указанные дни недели;
  • Выберите из выпадающего списка необходимые дни недели - понедельник, вторник, среда, четверг, пятница, суббота, воскресенье.
  • Только в выбранные недели месяца - оптимизация может выполняться только в указанные недели месяца.
Выберите из выпадающего списка необходимые недели месяца - 1, 2, 3, 4, последняя.
Рисунок 45 - Настройки временного окна для запуска оптимизации

Области начального интереса

В данном разделе настраивается регулярная перегенерация кэша, а также области начального интереса (см. Рисунок 46 ).
Задайте количество потоков (количество ядер процессора), используемых для генерации тайлового кэша (параметр Количество используемых потоков ). По умолчанию используется 1 поток. Чтобы ограничений на количество потоков не было, укажите 0 .
Чтобы включить генерацию тайлового кэша по обозначенным областям интереса, включите опцию Включить генерацию кэша .
Чтобы настроить регулярное превентивное обновление тайлового кэша, включите опцию Включить регулярную перегенерацию кэша .
Рисунок 46 - Настройка областей начального интереса
Задайте период времени в течение дня, когда необходимо выполнять перегенерацию тайлового кэша (параметр По времени с … по … ).
Укажите, в какие дни может выполняться перегенерация:
  • Только в выбранные месяцы - перегенерация может выполняться только в указанные месяцы;
  • Выберите из выпадающего списка необходимые месяцы - январь, февраль, март, апрель, май, июнь, июль, август, сентябрь, октябрь, ноябрь, декабрь.
  • Только в выбранные дни - перегенерация может выполняться только в указанные числа месяца;
  • Выберите из выпадающего списка необходимые числа месяца - от 1 до 31. Если выбрано 31 (или 29, или 30 для февраля), но такого числа в месяце нет, перегенерация выполнится в последний день месяца.
  • Только в выбранные дни недели - перегенерация может выполняться только в указанные дни недели;
  • Выберите из выпадающего списка необходимые дни недели - понедельник, вторник, среда, четверг, пятница, суббота, воскресенье.
  • Только в выбранные недели месяца - перегенерация может выполняться только в указанные недели месяца.
  • Выберите из выпадающего списка необходимые недели месяца - 1, 2, 3, 4, последняя.
При указании времени и дней, когда превентивно обновлять тайловый кэш по областям интереса, учитывайте время жизни тайлов (см. параметр Время жизни тайлов в разделе Общее , см. п. 4.5.1 ).
Для сервиса можно задать одну или несколько областей начального интереса, для которых тайловый кэш будет предварительно сгенерирован. Нажмите на кнопку + Добавить область , и в открывшемся окне укажите параметры области (см. Рисунок 47 ):
Рисунок 47 - Добавление области начального интереса для предварительной генерации тайлов
  • Название - название обозначенной области (обязательный параметр);
  • Ограничения по масштабу -опция определяет, в пределах каких масштабов нужно сгенерировать тайловый кэш;
  • С помощью бегунка задайте диапазон масштабов, в пределах которых будет создан тайловый кэш. Если диапазон не задан, тайловый кэш будет создан для всех масштабов.
  • Включить генерацию кэша ;
  • Тип - способ выбора области интереса:
    • Область по координатам - выбрано по умолчанию; задайте область, определив крайние точки экстента вручную:
      • Система координат - определите систему координат, в которой указаны крайние точки экстента;
        1. По умолчанию выбрана WGS 84 (4326). Чтобы задать другую систему координат, нажмите на название системы координат или ее WKID. В открывшемся окне выберите другую стандартную систему систему координат из списка или задайте пользовательскую (подробнее см. п. 5.6 ).
      • Экстент - задайте крайние точки области интереса - X min, X max, Y min, Y max;
    • Класс пространственных объектов - задайте область интереса по экстенту выбранного класса пространственных объектов (см. Рисунок 48 );
    • База данных - укажите путь до базы данных, в которой хранится необходимый класс объектов (обязательный параметр);
    • Имя таблицы - укажите имя класса объектов (обязательный параметр);
    • SQL-фильтр - задайте при необходимости SQL-фильтр;
    • Буфер (в метрах) - дополнительно задайте буфер в метрах, если требуется;
Рисунок 48 - Определение области начального интереса по классу пространственных объектов
  • Начальный охват - используется начальный экстент выбранного сервиса;
  • Полный охват - используется полный экстент выбранного сервиса (см.  Рисунок 49 ).
Рисунок 49 - Определение области начального интереса по начальному или полному охвату сервиса
Нажав на кнопку ОК , область начального интереса добавится в список. Список добавленных областей начального интереса можно отсортировать по названию, типу, масштабам, состоянию (включена или выключена) опции Включить генерацию кэша .
Настройки выбранной области начального интереса можно изменить, нажав на кнопку . Чтобы удалить выбранную область начального интереса, нажмите на кнопку (см. Рисунок 50 ).
Рисунок 50 - Изменение настроек и удаление выбранной области начального интереса

Удаление тайлового кэша

Для очистки всего тайлового кэша у сервиса, нажмите на кнопку Удалить тайловый кэш внизу списка настроек (см. Рисунок 51 ).
Рисунок 51 - Удаление тайлового кэша