Skip To Content

Кэширование карт, основанное на границах объектов

В этом разделе

ArcGIS позволяет пространственно ограничить создание листа границами класса объектов. Класс объектов можно указать двумя способами:

  • При публикации сервиса или инициализации кэша установите параметр Область интереса для кэширования (Area of interest to cache) на закладке Кэширование (Caching) > Дополнительные настройки (Advanced Settings) Редактора сервисов (Service Editor). Из раскрывающегося списка выберите Импорт из класса объектов (Import from a feature class). Эта область интереса применяется, только если вы решили автоматически создать кэш при публикации.
  • Откройте инструмент Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles) и установите параметр Область интереса (Area of interest). Эта настройка переопределяет все области интереса, которые вы могли настроить в Редакторе сервисов (Service Editor).
Примечание:

Если инструмент Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles) запущен в ArcMap, можно выделить область интересов на экране. Это бывает полезно, когда вы пытаетесь вставить потерянные листы в известную область кэша или обеспечить покрытие в заданной области. Однако для большинства работ по структурированному кэшированию или обновлению рекомендуется использовать класс пространственных объектов.

Кэширование границами класса объектов позволяет создавать листы только в тех местах, где они нужны, избегая пустых и не представляющих интереса областей. Например, если вы кэшируете страну, вы можете использовать класс объектов крупных городских областей. Сделав это, вы поручаете серверу предварительно создать только листы, которые покрывают эти городские области. Оставшиеся части областей могут быть кэшированы по первому требованию, когда поступает запрос от клиентов. Это позволит сэкономить время и дисковое пространство, которые были бы потрачены на создание ненужных листов в сельских районах.

В изображении ниже показана теоретическая сетка листов, которые были бы созданы, если бы класс пространственных объектов содержал лишь штат Калифорния. Класс объектов позволяет избежать создания ненужных листов в океане и в соседних штатах. Эти ненужные листы были бы включены, если бы использовался применяемый по умолчанию прямоугольный экстент.

Иллюстрация создания листа, основанного на границах объектов

Поддерживаемые типы форм

Для определения области интереса используется класс полигональных объектов. Если вы хотите создать или обновить кэш, основанный на точечном или полилинейном классе объектов, вы должны сначала построить небольшой буфер вокруг этих объектов, чтобы получить класс полигональных объектов. Также рекомендуется выполнить слияние по атрибуту и генерализацию буферных зон, прежде чем использовать их в качестве области интереса.

Поскольку точки содержат только одну вершину, для их быстрого отображения можно использовать динамический картографический сервис или графику на стороне клиента (например, векторный слой в картографических веб-интерфейсах API ESRI). После проверки производительности может выясниться, что кэширование точек вовсе не требуется.

Рекомендации

Следующие советы помогут эффективно создавать кэш на основе класса пространственных объектов:

Только кэш по классу объектов в крупных масштабах

В мелких масштабах создается относительно мало листов, поэтому не имеет большого значения, создается кэш по классу пространственных объектов или нет. Создание всех листов для мелких или средних масштабов гарантирует, что когда пользователи откроют карту и начнут ее увеличивать, у них не будет пропущенных листов и им не придется запрашивать создание каких-либо листов.

Чтобы свести к минимуму дублирование надписей, инструменты кэширования рисуют изображение большой области или суперлист, прежде чем разрезать изображение на листы запрашиваемого размера. Если картографический сервис использует сглаживание, размер суперлиста составляет 2048 x 2048 пикселей, в противном случае размер составляет 4096 x 4096. Когда объект пересекает границу суперлиста, этот целый суперлист должен быть создан. Это означает, что требуется некоторое увеличение, прежде чем кэширование по классу объектов начинает действительно экономить время и место на диске. Если пространственных объектов много и они покрывают всю карту, вы можете не почувствовать преимущества кэширования по классу объектов, поскольку большая часть объектов пересечет суперлист.

Генерализация границ объектов

Слишком большое количество вершин в классе пространственных объектов может замедлить работу инструментов кэширования, но, к счастью, большое количество вершин вам не понадобится. Поскольку инструменты кэширования рисуют квадратные области, имеется тенденция к притуплению любых детализированных объектов, имеющихся в классе пространственных объектов. Классу пространственных объектов необязательно включать каждый остров, причал и залив.

Можно использовать инструмент Упростить полигон (Simplify Polygon), чтобы методично удалить вершины из класса пространственных объектов, не изменяя его общей формы. Если класс пространственных объектов получен из модели, можно применить упрощение полигонов в качестве завершающего шага для модели. Некоторые инструменты, например Буфер (Buffer), могут добавлять в класс пространственных объектов избыточное количество вершин.

На приведенном ниже изображении показано создание похожих наборов листов при использовании как класса детализированных, так и класса генерализованных объектов. У второго класса пространственных объектов большая часть вершин удалена с помощью инструмента Упростить полигон (Simplify Polygon). Серые области составляют суперлист 4096 x 4096 в масштабе 1: 4500.

Кэширование с классом детализированных пространственных объектов
Кэширование с классом генерализованных пространственных объектов
Прежние версии:

В 10.0 и в более ранних версиях рекомендовалось, чтобы величина объектов была быть достаточно большой для вмещения нескольких пакетов листов в целях обеспечения оптимального использования экземпляров сервиса. Это условие уже не является обязательным в версии 10.1. Также статус отслеживания полей, доступный в версии 10.0 и в более ранних версиях, не используется начиная с версии 10.1. Для просмотра статуса выполнения кэширования щелкните правой кнопкой мыши сервис в дереве каталога и выберите Посмотреть статус кэша (View Cache Status).