Лучший способ создать быстрые сервисы изображений заключается в их кэшировании. При кэшировании сервиса изображений сервер прорисовывает изображение с набором уровней масштаба и размером в пикселах, которые вы задаете, и сохраняет предварительно обработанные изображения (кэшированные). Таким образом, когда сервер получает запрос на изображение, он гораздо быстрее возвратит одно из этих кэшированных изображений, чем заново нарисует исходное изображение.
Кэширование подходит для сервисов изображений, которые меняются не слишком часто. Если они изменяются, то имеются инструменты, с помощью которых можно обновлять кэш.
Создание эффективного кэша сервиса изображений нуждается в некоторой разработке перед его построением. Вы можете создать сервис изображений из набора растровых данных, набора данных мозаики или файла слоя, ссылающегося на набор растровых данных или мозаику. В данном руководстве пошагово объясняется процесс планирования и разработки сервиса изображений, который будет кэшироваться с помощью схемы листов ArcGIS Online/Bing Maps/Google Maps. Затем создается сервис изображения и выполняется кэширование. Наконец, выполняется тестирование кэша в клиентском приложении.
Примечание:
Если источником вашего сервиса изображения является набор данных мозаики, то важно использовать систему координат WGS 1984 Web Mercator (Auxiliary Sphere), т.е. ту же систему координат, которая используется ArcGIS Online, Google Maps и Bing Maps.
При работе с данным руководством, выбирайте простые наборы данных, покрывающие относительно небольшой регион, например: город или страну. Это руководство представляет собой практическую работу, которая позволит подготовиться к последующему выполнению задач, связанных с кэшированием, у себя в организации. Обратите пристальное внимание на обсуждение и инструкции, но не переживайте, если что-то не будет получаться с первого раза. Разработка правильно функционирующих кэшей требует определенного времени.
Данное руководство разделено на три основные части:
- Создание сервиса изображений
- Публикация сервиса изображения (и создание кэша)
- Тестирование кэша
Действия перед выполнением этого руководства
Если вы только что установили ArcGIS for Server, то вы должны выполнить несколько подготовительных действий до подключения к ArcGIS for Server в ArcMap и публикации сервисов.
- Подробные инструкции по настройке сайта ArcGIS Server см. в разделе Приступая к работе после установки данной справочной системы.
- Для обслуживания сервиса изображений из набора данных мозаики или его слоя вам требуется дополнительный модуль ArcGIS Image , при этом для обслуживания набора растровых данных или его слоя данный модуль не нужен.
- Сведения о том, как сделать данные сервиса изображений доступными на сервере, см. в разделе Предоставление доступа к данным для ArcGIS for Server.
Создание сервиса изображений
При кэшировании сервиса изображений сервер прорисовывает его на нескольких предварительно выбранных пользователем уровнях масштаба или размерах в пикселах. После кэширования сервиса изображения уже невозможно изменить его вид, если не создать кэш повторно или не обновить его. Это означает две важные вещи:
Сервис изображения должен хорошо выглядеть и отображать правильный растр в каждом масштабе до кэширования.
Кэшированный сервис изображений должен быть проработан в каждом масштабе, который будет кэшироваться. Каждый сервис изображений имеет собственный набор свойств, например, метод мозаики, на основании которого выбираются растры для создания мозаики и отображаются для каждого уровня масштаба.
Выбираемые уровни масштабов и размер в пикселах имеют очень важное значение.
Если выбрать недостаточное количество масштабов, пользователи могут ощутить недостаток информации или не смогут надлежащим образом прочитать сервис изображения. Если выбрать слишком много масштабов или задействовать ненужные масштабы, увеличится время создания кэша и пространство, необходимое для хранения данных. Однако в организации уже может быть определена схема листов, которая будет использоваться во время кэширования. Схема листов задает определенные свойства кэша, включая уровни масштаба и размер в пикселах, которые следует создать.
Примечание:
При использовании набора данных мозаики в качестве источника вашего сервиса изображений лучше всего обратить внимание на количество уровней, которое имеет набор, что позволит правильно выбрать уровни масштаба или размер в пикселах при определении схемы листов. Количество уровней может быть определено путем просмотра таблицы уровней размеров ячеек набора данных мозаики.
В этом руководстве предполагается, что в организации используются схемы листов ArcGIS Online/Bing Maps/Google Maps. Чтобы приступить к работе, выполните приведенные ниже действия.
Проектирование сервиса изображений
Одно из преимуществ кэширования сервиса изображений заключается в том, что на этапе проектирования его исходного набора данных вы можете применить различные растровые функции, не задумываясь о том, как это повлияет на производительность. Уделите некоторое время тому, чтобы запомнить все необходимое для вашего сервиса изображений, так как после создания кэша уже нельзя будет вносить изменения без его повторного создания или обновления.
Если вы знаете, что будете создавать набор данных мозаики, который будет опубликован как сервис изображений и кэширован с использованием схемы листов ArcGIS Online/Bing Maps/Google Maps, создайте набор данных мозаики с использованием системы координат WGS 1984 Web Mercator (Auxiliary Sphere) или WGS 1984 Web Mercator.
Если вы создаете набор данных мозаики в проекции, отличающейся от той, которую вы использовали для кэширования, то вы должны создать базовый набор данных мозаики из набора в необходимой вам проекции. Это необходимо, так как вы не можете изменить проекцию набора данных мозаики.
Для получения дополнительных сведений о проектировании исходного набора данных сервиса изображений см. раздел Подготовка сервиса изображений.
Публикация сервиса изображений
На данном этапе руководства описывается публикация сервиса изображений на ArcGIS for Server с помощью ArcMap. В течение этого процесса необходимо определить схему кэша сервиса изображений и проанализировать его производительность. После завершения этих задач необходимо опубликовать ваш сервис изображений.
- Запустите ArcMap.
- В окне Каталог щелкните правой кнопкой нужный набор данных или слой и выберите пункт Разместить для общего доступа как сервис изображений (Share As Image Service).
- Выберите Опубликовать как сервис (Publish as service) и нажмите Далее (Next).
- Выберите нужный сервер из списка Выберите подключение (Choose a connection).
- Дополнительно введите новое имя сервиса.
Имя может содержать только цифры, буквы, подчеркивания и не может быть длиннее 120 символов.
- Щелкните Далее (Next).
- По умолчанию сервисы публикуются в корневой директории [root] ArcGIS for Server. Кроме того, сервисы можно разместить в папках в корневом каталоге. Выберите папку, в которой требуется опубликовать сервис, или создайте новую папку для сервиса.
- Нажмите кнопку Продолжить (Continue).
Появится Редактор сервисов. Редактор сервисов (Service Editor) служит для выбора возможных действий пользователей с сервисом изображений, а также в мельчайших подробностях управляет отображением сервиса изображений.
Дополнительная информация по конкретным параметрам и возможностям приведена в разделе Сервисы изображений и их функции.
- На левой панели Редактора сервисов (Service Editor) щелкните Функции (Capabilities).
По умолчанию, опция Изображения включена.
- На левой панели в разделе Функциональность щелкните Изображения и просмотрите информацию.
URL – URL клиентов, использующиеся для доступа к сервису изображений. Адрес URL для SOAP будет иметь следующий формат: http://gisserver.domain.com:6080/arcgis/services/folder/service/ImageServe. Адрес URL для REST будет иметь следующий формат: http://gisserver.domain.com:6080/arcgis/rest/services/folder/service/ImageServer.
Разрешенные действия – есть несколько операций, доступных при использовании сервиса изображений. Каждая операция регулирует взаимодействие клиентов с сервисом. Дополнительная информация приведена в разделе Сервисы изображений и их функции.
- На левой панели диалогового окна Редактора сервисов (Service Editor) нажмите Кэширование (Caching).
- Для прорисовки данного сервиса выберите Использовать листы кэш (Using tiles from a cache).
- Щёлкните стрелку раскрывающегося списка Схема листов (Tiling Scheme) и выберите ArcGIS Online / Bing Maps / Google Maps.
Это означает, что ваш кэшированный сервис изображений будет использовать схему листов ArcGIS Online/Bing Maps/Google Maps и уровни масштабирования.
Примечание:
Если вы выбираете Предложить (Suggest) из ниспадающего списка Схема листов кэша (Tiling Scheme)вам будет задан вопрос, сколько уровней нужно использовать для создания схемы листов по умолчанию. Её можно изменить, нажав Дополнительные настройки (Advanced Settings) на левой панели.
- Оцените Оцениваемый размер кэша (Estimated Cache Size). Затем уменьшите (переместите влево) бегунок Максимальный уровень масштаба (Maximum scale level) в строке Уровень детализации (Levels of Detail) до тех пор, пока Оцениваемый размер кэша (Estimated Cache Size) не будет меньше 50 Мб. Это позволяет получить необходимый размер кэша для тестирования.
По мере перемещения бегунка вы заметите, что значения Уровень (Level), Масштаб (Scale) и Размер ячейки (Cell Size) изменяются для предоставления информации высшего уровня кэша. При использовании набора данных мозаики вы можете выбрать создание кэша только при отсутствии создания обзоров.
- В рамках данного руководства примите все другие настройки по умолчанию. Учтите, что один из принимаемых параметров по умолчанию – автоматически создать кэш при публикации сервиса. Для кэшей большего размера, можно построить кэш вручную в различное иное время (например, ночью или на выходных).
- На левой панели нажмите Дополнительные настройки (Advanced Settings), выберите в раскрывающемся списке Формат листа (Tile Format) пункт JPEG.
Формат JPEG приведет к созданию небольших листов и к уменьшению дискового пространства, необходимого для кэширования. Клиенты также смогут быстро загружать листы.
Также можно выбрать Смешанный (MIXED). Такой смешанный кэш использует JPEG, когда он полностью покрыт изображением и PNG32 для листов, содержащих области, которые необходимо отобразить как прозрачные.
- Нажмите кнопку Дополнительно (Advanced).
- В раскрывающемся списке Формат хранения (Storage Format) выберите Уплотнить (Compact).
Этот формат группирует листы кэша в большие файлы, а не сохраняет их в виде отдельных файлов.
- Нажмите кнопку ОК, чтобы закрыть диалоговое окно.
- Щёлкните стрелку раскрывающегося списка Директория кэша (Cache Directory), чтобы выбрать директорию, в которой следует создать кэш. Если список пуст, необходимо добавить директорию кэша сервера, а затем продолжить работу. Подробные инструкции см. в разделе Создание директории сервера (Creating a server directory).
- В рамках данного руководства примите оставшиеся значения параметров сервера по умолчанию и продолжайте.
- В Редакторе сервисов (Service Editor) щелкните Анализировать.
При этом набор данных будет исследован на возможность публикации на сервере. Результаты будут отображены в окне Подготовка (Prepare). Необходимо устранить Ошибки перед публикацией сервиса изображений. Более подробно об устранении этих ошибок см. в разделе Анализ геоинформационного ресурса.
Подсказка:
Чтобы развернуть область просмотра, нажмите кнопку Свернуть (Collapse) в верхней части окна Редактора сервисов (Service Editor).
- При необходимости в Редакторе сервисов (Service Editor) щелкните Предварительный просмотр.
Это позволит увидеть, как данные будут выглядеть при просмотре в сети. Дополнительные сведения см. в разделе Предварительный просмотр карты.
- После исправления всех ошибок нажмите Опубликовать.
Публикация сервиса изображений начинается незамедлительно. После завершения публикации сервер начинает создавать листы кэша и продолжает этот процесс до завершения формирования кэша.
В зависимости от самого большого заданного масштаба, оборудования сервера, экстента данных и других факторов на создание кэша уйдет некоторое время. Если вы выбрали простой набор растровых данных или данных мозаики с небольшим географическим экстентом, то, скорее всего, кэш будет создан в течение нескольких минут. Окно статуса геообработки отображает ход выполнения создания кэша.
Тестирование кэша
После завершения создания кэша можно протестировать его в веб-приложении, чтобы убедиться в правильном отображении сервиса изображения и в его надлежащей работоспособности. Кроме того, это хороший способ проверки правильности распознавания и использования приложением всех листов.
Можно выполнять проверку в простом веб-приложении. Хорошим способом проверки кэша сервиса изображения является использование вьюера ArcGIS API for JavaScript, доступного через ArcGIS Server Services Directory.
- В окне веб-браузера перейдите в Директорию сервисов. Например, http://gisserver.domain.com:6080/arcgis/rest/services.
- В списке сервисов выберите нужный сервис изображения. Все сервисы изображений имеют метку (ImageServer). Если сервис расположен в папке, выберите его, перейдя в нужную папку.
- Отображается страница, на которой приведено имя сервиса, его описание и список слоев. Щелкните Просмотреть в: ArcGIS JavaScript. Появится окно с простым веб-приложением JavaScript.
- A window with a simple JavaScript web application appears. The levels in the zoom-level slider correspond to the scales in your cache.
- Перемещайтесь по сервису изображений и переходите на различные уровни масштаба. Обратите внимание, как быстро отображаются листы изображений при перемещении и масштабировании.
Решение проблем
Если у вас создается впечатление, что приложение не использует кэш, убедитесь, что учетная запись ArcGIS Server имеет права на чтение и запись в вашу директорию кэша сервера.
При использовании Mozilla Firefox для просмотра веб-приложения имеется простой способ определить, используются ли кэшированные листы.
- Щелкните правой кнопкой мыши в веб-приложении и выберите пункт Просмотр информации о странице.
- В окне Информация о странице щелкните кнопку Медиа.
- Просмотрите изображения, которые отображаются в списке. Если отображаются URL-адреса, ссылающиеся на директорию кэша на сервере, значит кэш используется.