- Описание платформы
- Руководство администратора по установке и настройке
-
Руководство по созданию картографических приложений
- Введение
- Основные принципы работы в Конструкторе
- Настройка Каталога карт
- Папка
- Страница
- Ссылка
- Картографическое приложение
-
Правила SOE
- Назначение
- Управление возможностями SOE
- Плагины. Общие сведения.
- Редактирование объектов. Плагин Редактирование.
- Плагин ограничения на просмотр данных картографического сервиса
- Отслеживание истории изменений объектов
- Загрузка и выгрузка данных
- Галерея изображений
- Подсчет количества объектов в слое
- Расширенный поиск объектов. Гибкий поиск и ближайшие объекты.
- Приложение А. Макросы, используемые в настройках
-
Руководство по публикации ГИС-сервисов
- Введение
- Начало работы в CoGIS Server Manager
-
Каталог сервисов
- Общие принципы
- Просмотр сведений о сервисе или папке
- Изменение статуса сервиса
- Обновление сервиса из файла
- Выгрузка файла сервиса
- Редактирование имени сервиса
- Получение JSON-описания и адреса REST API для выбранного сервиса
- Навигация по каталогу
- Добавление новой папки
- Удаление и копирование сервиса или папки
- Поиск по каталогу
- Публикация картографических сервисов
- Публикация сервисов геокодирования
- Публикация сервисов геообработки
- Публикация сервисов сетевого анализа
- Публикация картографических сервисов мозаики
-
Руководство по созданию картографических проектов
- Введение
- Настройки подключения к базе данных
- Свойства QGS-проекта
- Слои и таблицы
- Свойства слоя
-
Настройки переменных
- Отслеживание изменений (Edit Tracker)
- Кластеризация
- Подтипы
- Полумасштабозависимость
- Отношение многие-ко-многим (many-to-many)
- Статичные подписи
- Представление на основе SQL-запроса (SQL-based view)
- Термокарты
- Тепловые карты
- Псевдо 3D
- Номера слоев
- Обрезка карты по слою (MaskLayer)
- Символ ЛЭП
- Подмена источника для отображения
- Фильтр на слой с возможностью использования макросов
- Диаграммы 3D
- Сортировка объектов слоя по полю для выдачи в запросе
- Выключение слоя из картографического сервиса
- Отображение видимой области с учётом рельефа
- Подпись узлов геометрии
- Проверка фильтров на слой по регулярному выражению
- Создание сервиса геокодирования
- Вложения (Attachments)
- История изменений
- Автообновляемость тайлов
- Шаболоны печати на основе макетов QGIS (формат qpt)
- Руководство по работе в мобильных приложениях
- Руководство по установке и настройке SOE for ArcGIS
Автообновляемость тайлов
Картографический сервис, помимо векторной графики, может выдавать области карты в виде растрового изображения.
Такое изображение делится на блоки/квадраты, называемые тайлами.
После генерации тайлы хранятся в тайловом кэше и при последующих запросах тайлы не формируются заново, а берутся из кэша. Таким образом, если объекты карты были изменены, то на ранее сгенерированных тайлах эти изменения не будут отражены.
Во избежание таких ситуаций картографический сервис в CoGIS Server можно настроить на обновление тех тайлов, в которые попадают измененные объекты. Помимо соответствующей настройки сервиса в CoGIS Server Manager (см. в Руководстве по публикации ГИС-сервисов в CoGIS Server ), в базе данных необходимо создать специальную таблицу, в которую будут записываться экстенты для перегенерации тайлов.
Имя таблицы по умолчанию: elitegis_changed_extent_log.
Таблицу можно создать средствами QGIS (в Менеджере БД ).
Структура таблицы (имена и типы полей) следующая, см. Рисунок 186 .
Рисунок 186 – Структура таблицы для хранения экстентов для перегенерации тайлов
Скрипт создания таблицы в PostgreSQL:
CREATE TABLE <my_schema>.elitegis_changed_extent_log
(
id serial,
target_table_name text,
service_name text,
xmincoord double precision,
xmaxcoord double precision,
ymincoord double precision,
ymaxcoord double precision,
spatial_reference_id integer,
processed integer,
edited_date timestamp with time zone,
CONSTRAINT elitegis_changed_extent_log_pkey PRIMARY KEY (id)
)
TABLESPACE pg_default;
ALTER TABLE <my_schema>.elitegis_changed_extent_log
OWNER to postgres;
Также для заполнения данной таблицы в БД необходимо создать триггер на изменение в соответствующем классе объектов. Если классов объектов несколько, то триггер создается на каждый такой класс.
Скрипт создания триггера:
CREATE FUNCTION <my_schema>.set_data_to_extentchangelog() RETURNS trigger AS $$
BEGIN
IF (OLD.geom IS NOT NULL AND ST_IsEmpty(OLD.geom) = false) THEN
BEGIN
INSERT INTO <my_schema>.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 <my_schema>.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;
$$ LANGUAGE plpgsql;
CREATE TRIGGER set_data_to_extent_change_log
AFTER INSERT OR UPDATE OR DELETE
ON '<my_schema>.<my_featureclass>
FOR EACH ROW
EXECUTE PROCEDURE <my_schema>.elitegis_changed_extent_log();