Лучшим способом ускорить картографические сервисы является выполнение кэширования. При кэшировании картографического сервиса сервер отображает карту на нескольких заданных пользователем уровнях масштабирования и сохраняет эти изображения. Когда сервер получает запрос на карту, он гораздо быстрее возвратит одно из этих кэшированных изображений, чем заново нарисует карту.
Кэширование подходит для базовых карт и карт, которые не меняются слишком часто. Для карт, которые изменяются только от случая к случаю, доступны инструменты, с помощью которых можно обновлять кэш. Чтобы добиться оптимальной производительности, следует кэшировать как можно больше слоев. Возможно, окажется полезным создать два слоя и разделить слои, которые следует кэшировать, и те слои, кэширование которых будет невыгодным. Например, можно создать кэшированный картографический сервис на основе слоев базовой карты и некэшируемый картографический сервис на основе слоев, обновляемых в режиме реального времени или слоев, которые изменяются в результате анализа или моделирования.
Создание эффективного кэша карт нуждается в тщательной разработке перед его построением. В настоящем руководстве описывается процесс планирования и создания карты для кэширования. Вы опубликуете картографический сервис, указав, когда должен быть построен кэш. И далее выполните тестирование кэша в клиентском приложении.
Перед началом работы
Если вы только что установили ArcGIS Server, вы должны выполнить несколько подготовительных действий до подключения к серверу ArcMap и публикации сервисов.
- Подробные инструкции по настройке сайта ArcGIS for Server см. в разделе Приступая к работе после установки.
- Сведения о том, как сделать данные, на которые ссылается ресурс ГИС, доступными на сервере, см. в разделе Предоставление доступа к данным в ArcGIS Server.
Создание карты
При кэшировании карты сервер отображает ее на нескольких предварительно выбранных пользователем уровнях масштаба. После отображения карты уже невозможно изменить ее вид, если не создать кэш повторно или не обновить его. Поэтому следует принять во внимание:
- Перед началом кэширования необходимо добиться того, чтобы карты выглядела хорошо в любом масштабе – бумажная карта должна выглядеть хорошо в одном масштабе, а кэшированная карта должна быть проработана в каждом масштабе, который будет кэшироваться.
- Уровни масштабов имеют важное значение – если выбрать недостаточное количество масштабов, пользователи могут ощутить недостаток информации или не смогут надлежащим образом прочитать карту. Если выбрать слишком много масштабов или задействовать ненужные масштабы, увеличится время создания кэша и пространство, необходимое для хранения данных. Однако в организации уже может быть определена схема листов, которая будет использоваться во время кэширования. Схема листов задает определенные свойства кэша, включая уровни масштаба, которые следует создать.
Определение системы координат
При создании карты необходимо для фрейма данных определенную систему координат. Это система координат, которая будет использоваться для отображения листов кэша.
- Запустите ArcMap и откройте новый пустой документ карты.
- В таблице содержания ArcMap щелкните правой кнопкой мыши имя фрейма данных (по умолчанию Слои) и выберите пункт Свойства.
- Щелкните вкладку Система координат и перейдите к нужной системе координат, в которой следует отобразить карту.
- Нажмите OK.
Проектирование карты
Пришло время перейти непосредственно к проектированию карты. Одним из преимуществ кэширования карты заключается в том, что на этапе проектирования можно использовать все картографические инструменты, не задумываясь о том, как это повлияет на производительность. Уделите некоторое время оформлению карты, так как после создания кэша уже нельзя будет вносить изменения без повторного создания или обновления кэша. Пользователи кэша также не смогут изменить символы, так как они будут просматривать уже существующие изображения карты, хранящиеся на сервере.
Лучше всего обеспечить качественное отображение карты в каждом из масштабов. Это упрощает работу с растровыми данными, так как ArcMap выполняет некоторый пересчет данных при изменении масштабов. Однако векторные данные будут отображаться с теми же размерами точек и линий в каждом масштабе, поэтому следует приложить дополнительные усилия, чтобы данные на карте не выглядели слишком скученными или разбросанными. В приведенных ниже действиях описывается стратегия проектирования, которой можно придерживаться, если карта содержит векторные данные.
- Работая в ArcMap, добавьте нужные наборы данных и уменьшите изображение до самого мелкого масштаба. При необходимости устраните изъяны проекции. Во всех наборах данных следует использовать одинаковую проекцию, чтобы кэширование выполнялось надлежащим образом.
- Задайте символы и подписи для всех слоев в этом масштабе.
Подсказка:
Может понадобиться указать определяющий запрос, чтобы в этом масштабе отображалось меньше пространственных объектов. Например, если имеется слой городов, можно задать определяющий запрос, который приведет к отображению городов только с населением, превышающим 20 000 человек.
- Увеличьте карту до следующего масштаба и задайте символы и надписи для всех слоев этого масштаба.
Подсказка:
Если необходимо изменить символы, надписи или определяющий запрос на слое другого масштаба, добавьте копию этого слоя в карту. Для этого щелкните слой правой кнопкой мыши в Таблице содержания ArcMap и выберите Копировать. Затем щелкните правой кнопкой мыши имя фрейма данных и выберите Вставить слои.
- Создайте составные слои для отслеживания копий слоев. Проще всего создать один составной слой для каждого масштаба. Таким образом, необходимо задавать зависимость от масштаба только для группы слоев, а не для каждого отдельного слоя. Можно также включить масштаб в имя.
- Задайте диапазон масштабов для каждого составного слоя, чтобы только один слой был виден в каждом кэшированном масштабе. Настройте диапазон масштабов с уровнем допуска для каждого кэшированного масштаба. Например, если один из составных слоев будет кэшироваться в масштабе 1:577 791, может понадобиться сделать этот слой видимым только при уменьшении масштаба до 1:866 686 и увеличении масштаба до 1:433 343.
- Увеличивайте масштаб до каждого последующего уровня и соответствующим образом определяйте символы, пока не проработаете все масштабы в списке.
- Сохраните карту. Все готово к публикации карты.
Публикация сервиса и создание листов кэша
Опубликуйте документ карты на ArcGIS Server с помощью ArcMap. В течение этого процесса необходимо определить схему кэша карты и проанализировать производительность документа карты. Укажите, когда следует построить кэш.
- Откройте документ карты в ArcMap и выберите команды Файл > Опубликовать как > Сервис в главном меню.
- В окне Опубликовать как сервис выберите Опубликовать сервис. Нажмите Далее.
- В диалоговом окне Опубликовать сервис щелкните Подключиться к ArcGIS Server для создания нового подключения к серверу.
- В окне Добавить ArcGIS Server выберите Опубликовать ГИС-сервисы. Нажмите Далее.
- В опции URL сервера введите URL-адрес сайта ArcGIS Server, к которому нужно подключиться. URL-адрес должен иметь формат http://gisserver.domain.com:6443/arcgis.
- В раскрывающемся списке Тип сервера выберите ArcGIS Server.
- Введите Имя пользователя и Пароль с минимальными правами доступа издателя в ArcGIS for Server. Если вы не настроили пользователей и роли для безопасности, можно использовать учетную запись главного администратора сайта, заданную при создании сайта. Оставьте включенной опцию сохранения имени пользователя и пароля. Затем нажмите кнопку Готово.
- При необходимости в окне Опубликовать сервис введите новое имя сервиса. Нажмите Далее.
- По умолчанию сервисы публикуются в корневой папке (root) ArcGIS Server. Сервисы могут размещаться во вложенных папках корневой папки. Выберите папку, в которой требуется опубликовать сервис, или создайте новую папку для сервиса. Нажмите кнопку Продолжить.
- Появится Редактор сервисов. Редактор сервисов используется для указания, что пользователи могут делать с кэшированным картографическим сервисом, определения схемы кэширования, детального управления предоставлением картографического сервиса сервером. Перейдите на вкладку Кэширование.
- На вкладке Кэширование, выберите параметр отображения картографического сервиса Использовать листы кэша.
- В раскрывающемся списке Схема листов выберите схему листов для кэша: Схема листов определяет масштабы, на которых будут созданы листы и границы листов. Она содержит информацию о системе координат кэша и некоторые другие свойства. Существует несколько способов выбора схемы листов.
- Если вы хотите использовать схему листов кэша ArcGIS Online, Bing Maps и Google Maps, выберите опцию ArcGIS Online / Bing Maps / Google Maps. Данные вашей карты будут перепроецированы "на лету" в необходимую систему координат этой схемы листов, т. е. WGS 1984 Web Mercator (Дополнительная сфера (Auxiliary Sphere)).
- Если вы хотите использовать такую же схему листов, как и у кэша в системе координат WGS84 Geographic, version 2, то выберите Файл схемы листов и укажите файл C:\Program Files (x86)\ArcGIS\Desktop10.5\TilingSchemes\WGS84_Geographic_Coordinate_System_V2.xml. Данные вашей карты будут перепроецированы "на лету" в необходимую систему координат этой схемы листов, т.е., WGS 1984.
- Если вы хотите использовать собственную схему листов, выберите Файл схемы листов и откройте XML-файл схемы листов, созданный с помощью инструмента Создать схему листов кэш картографического сервера.
- Если вы хотите использовать такую же схему листов, как и у существующего картографического сервиса, выберите Существующий кэшированный картографический сервис / сервис изображений и затем выберите сервис.
- Если вы хотите, чтобы ArcGIS предложил свои варианты, щелкните Предложение и введите число масштабов. Эта опция рекомендуется только для экспериментов и тестирования. В большинстве случаев карта уже будет разработана с определенным набором уровней масштаба.
- Используйте бегунки для установки свойства Уровни детальности.
Схемы листов часто содержат множество масштабов. В зависимости от карты вы можете заранее кэшировать наиболее крупные или мелкие масштабы схемы листов. ArcGIS изучает зависимости от масштаба в карте и предлагает минимальный и максимальный диапазон масштабов для кэширования. Вы можете изменить этот диапазон по своему усмотрению. Оставшиеся масштабы не удаляются из схемы листов, но вы не сможете создавать листы для них, если не вернуться в этой диалоговое окно и не включить их в диапазон.
- Выберите, будет ли кэш создаваться автоматически при публикации сервиса, или вы создадите кэш вручную после публикации. Эти опции доступны в нижней части Редактора сервисов.
Используйте выданный Приблизительный размер кэша и более точную сопутствующую утилиту Вычислить размер кэша, чтобы сделать выбор (см. статью Оценка размера кэша карты для получения дополнительных сведений об этих оценках). Если кэш большой, то рекомендуется создать его вручную поэтапно, кэшируя самые крупные масштабы выбранных областей интереса, которые будут посещаться наиболее часто. Если кэш небольшой, то легче создать его полностью автоматически во время публикации сервиса.
- Если вы решили создавать кэш автоматически в момент публикации, щелкните Дополнительные настройки в левом меню и выберите Область интереса для кэширования.
Если форма географии для кэширования не прямоугольная, рекомендуем выбрать Импорт из класса объектов и перейти к простому классу объектов, содержащему интересующую вас географию. Руководство по подготовке этого класса объектов см. в разделе Кэширование карт, основанное на границах объектов.
- На вкладке Дополнительные настройки можно изменить другие свойства в случае необходимости. Эти настройки описаны в разделе Доступные свойства кэша карты и изображений. Также у вас будет возможность редактировать свойства кэша сервиса в ArcGIS Server Manager после публикации.
- Щелкните Анализировать. Документ карты будет проанализирован на возможность публикации его на сервере.
Подсказка:
Чтобы расширить область просмотра при настойке картографического сервиса нажмите кнопку Свернуть , расположенную в верхней части Редактора сервисов.
- Исправьте все Ошибки в окне Подготовка. Это необходимо сделать до публикации карты как сервиса. При необходимости можно устранить предупреждения и информационные сообщения, чтобы улучшить производительность и внешний вид сервиса. Дополнительные сведения об устранении этих неполадок см. в разделе Анализ ГИС-ресурса.
Примечание:
Можно зарегистрировать папки и базы геоданных на сайте ArcGIS Server, чтобы сервер мог распознать и использовать ваши данные. Если продолжить выполнение следующих действий, все данные, указанные в документе карты, взятые из незарегистрированной папки или базы геоданных, будут скопированы на сервер во время публикации. Это мера предосторожности, гарантирующая, что сервер может получить доступ ко всем данным, используемым сервисом. Подробные инструкции по регистрации папки или базы геоданных на сайте ArcGIS Server см. в разделе Регистрация данных на ArcGIS Server с помощью ArcGIS Desktop.
- При необходимости в Редакторе сервисов щелкните Предварительный просмотр . Это позволит увидеть, как карта будет выглядеть при просмотре в браузере. Дополнительные сведения см. в разделе Предварительный просмотр карты.
- Если создается новый сервис, щелкните Опубликовать , когда вы будете готовы к публикации. Если вы редактируете существующий сервис, нажмите кнопку ОК, чтобы сохранить изменения.
Если вы решили создавать кэш автоматически, процесс начнется сейчас. Вы можете следить за ходом процесса в окне геообработки Результаты в ArcMap. Кэш строится асинхронно. Это значит, что можно закрыть ArcMap, пока строится кэш.
- Если вы решили создать кэш вручную, щелкните правой кнопкой мыши сервис в окне Каталога и выберите Управление кэшем > Управление листами. Откроется инструмент Управление листами кэша картографического сервиса, который можно запустить, используя выбранные масштабы и области интереса. Можно включить асинхронное кэширование, убрав отметку с параметра Дождитесь завершения задания в инструменте Управление листами кэша картографического сервера.
Тестирование кэша
После завершения создания кэша можно протестировать его в веб-приложении, чтобы убедиться в правильном отображении карты и в ее надлежащей работоспособности. Кроме того, это хороший способ проверки правильности распознавания и использования приложением всех листов.
Можно выполнять проверку в простом веб-приложении. Хорошим способом проверки кэша карты является использование приложения для просмотра, написанного на JavaScript, которое расположено в Директории сервисов ArcGIS Server.
- В окне веб-браузера перейдите в Директорию сервисов. URL-адрес должен иметь формат http://gisserver.domain.com:6080/arcgis/rest/services.
- В списке сервисов выберите нужный картографический сервис. Все картографические сервисы имеют метку (MapServer). Если сервис расположен в папке, найдите его, перейдя в нужную папку.
- Отображается страница, на которой приведено имя сервиса, его описание и список слоев. Щелкните Просмотреть в: ArcGIS JavaScript. Появится окно с простым веб-приложением JavaScript.
- Перемещайтесь по карте и переходите на различные уровни масштаба. Обратите внимание, как быстро отображаются листы карты при перемещении и масштабировании.
Устранение проблем
Если у вас создается впечатление, что приложение не использует кэш, убедитесь, что учетная запись ArcGIS Server имеет права на чтение и запись в вашу директорию кэша сервера.
При использовании Mozilla Firefox для просмотра веб-приложения имеется простой способ определить, используются ли кэшированные листы.
- Щелкните правой кнопкой мыши в веб-приложении и выберите пункт Просмотр информации о странице.
- В окне Информация о странице щелкните кнопку Медиа.
- Просмотрите изображения, которые отображаются в списке. Если отображаются URL-адреса, ссылающиеся на директорию кэша на сервере, значит кэш используется.