АГИС ГИС-сервер предназначен для отображения и многопользовательского редактирования географически распределенных данных, такие как сети систем водоснабжения и водоотведения, линии электропередач, насосные и трансформаторные станции, точки учета расхода электроэнергии, тепла, воды, газа. Дома, здания, сооружения, улицы, райны городв и т.д.
АГИС ГИС-сервер предтсавляет собой tile-server для отображения карт, их масштабирования и перемещения по ним путем вывода на экран тех фрагментов карт, в том масштабе и в том пространственном месте, которые указаны пользователем путем предоставленных ему функциональных кнопок и других интерфейсных инструментов («увеличить/уменьшить», «сдвинуть вправо/влево» и т.п.).
Название «Тайловый сервис» (от англ. tile – плитка) обусловлено тем, что все изображения (в данном случае – картографические) подготовлены и упакованы в сервис заранее в виде небольших фрагментов определенных размеров и масштабов. Такая организация данных значительно ускоряет работу по отображению картографических данных, обеспечивая поддержание высокой скорости отображения запрошенных участков карты даже при очень большом количестве одновременных обращений к сервису.
Сервис легко масштабируется, чем обеспечивается возможность практически неограниченного увеличения его производительности.
Служба Tile-server’а обеспечивает доступ к пространственным графическим данным (карте) хранимым на сервере в формате растровых изображений искомых данных с разной степенью приближения (слоев), нарезанных на фрагменты, называемые плитками или тайлами. Принцип нарезки следующий, − каждый следующий слой имеет разрешение в четыре раза больше предыдущего и содержит в четыре раза больше тайлов, при этом тайлы всех уровней имеют одинаковый размер, наиболее распространенный- 256×256 пикселей. Набор слоев тайлов с разным приближением для одних и тех же картографических данных образует тайловый слой- эквивалентный одному слою карты. На тайловом сервере может храниться несколько тайловых слоев и программа клиент запрашивает с сервера данные только необходимых ей слоев.
Тот факт, что графические данные хранятся в виде уже подготовленных к выгрузке растров заданного формата, позволяет значительно упростить выполнение задач сервера, по сравнению с другими типами серверов картографических данных). Вся работа Tile-сервера заключается в передаче клиенту растров по его запросам, минуя сложный и затратный с точки зрения ресурсов процесс “визуализации” исходных картографических данных. Благодаря этому, Tile-сервер позволяет обслуживать большее число клиентов одновременно, чем другие виды картографических серверов, либо работать на более слабом аппаратном обеспечении при равной нагрузке.
Сегодня во многих картографических веб-приложениях в качестве одной из подложек используется слой на базе тайлов OpenStreetMap. Популярность данной подложки обусловлена во-первых политикой предоставления тайлов, позволяющей свободно использовать тайлы OpenStreetMap в своих приложениях, а во-вторых – простотой их подключения в современных веб-клиентах, таких как Leaflet и OpenLayers.
Однако иногда возникает необходимость, чтобы данная подложка функционировала в том числе и при отсутствии Интернета (Интранет-приложения) или, будучи основанной на тех же исходных данных, имела совсем другое представление. Первым решением данной задачи, которое приходит в голову – это скачать необходимые тайлы с сайта OpenStreetMap. Однако это не очень удачное решение, так как политика использования тайлов запрещает их массовое скачивание и, кроме того, данный вариант не позволит настроить собственную символику подложки, отличную от стандартной. Правильным решением данной задачи является получение исходных данных OpenStreetMap и построение на их основе собственного набора тайлов.
Набор тайлов может быть подготовлен различными способами, но наиболее универсальный вариант предоставления доступа к тайлам – это использование тайлового сервера – программного обеспечения, работающего по следующим принципами:
при запросе тайла – сервер проверяет его наличие в своём кэше, если тайл найден – он возвращается клиенту;
если тайл не найден, то осуществляется его рендеринг, после чего он сохраняется в кэше и только после этого возвращается клиенту.