Советы и рекомендации по картографическому кэшу
В этом разделе
Приведенные ниже советы позволят достичь наилучшего оформления и производительности картографических кэшей. Советы упорядочены по следующим категориям:
Подготовка документа карты
По возможности выбирайте масштабы, которые следует кэшировать, до начала проектирования карты. Создавая карту в ArcMap, работайте в этих масштабах. Для быстроты доступа можно вручную загрузить эти масштабы в ниспадающий список масштабов в ArcMap.
Перед кэшированием карты, выполните визуальную проверку исходного картографического документа на каждом масштабе, который нужно будет кэшировать. Убедитесь, что соответствующие слои отображаются в каждом масштабе со всеми необходимыми символами и подписями. Если необходимо изменить символы слоя на основе масштаба, можно скопировать слой и вставить его обратно в таблицу содержания ArcMap. Задайте диапазон масштабов для каждой копии слоя, а также соответствующие символы для этого диапазона масштабов.
На приведенных ниже изображениях показан документ ArcMap с символами для просмотра в двух масштабах. Автор этой карты скопировал и вставил слои автомагистралей и городов обратно во фрейм данных, затем включил символы в увеличенную и уменьшенную версию каждого слоя.
На уменьшенной карте автор указал определяющий запрос для ограничения числа отображаемых городов только теми, в которых численность населения превышает 50 000. Кроме того, автор обозначил магистральные дороги в соответствующем слое тонкими линиями.
В увеличенной версии карты автор удалил определяющий запрос, чтобы отображались все города. Однако автор добавил правила надписывания, благодаря которым более крупные города обозначаются более крупным шрифтом. Кроме того, автор изменил символы магистралей, которые теперь помечаются более толстой картографической линией.
Автор задал диапазоны масштабов для увеличенных и уменьшенных слоев, чтобы для каждого масштаба карты отображался только один слой. В слоях рек и озер, границ округов, парков и границ областей используются те же символы независимо от увеличения или уменьшения, так что автор не создал копии этих слоев.
При создании карты, которую следует кэшировать на различных уровнях масштаба, необходимо повторить этот процесс, возможно даже создавая различные копии слоев в документе карты. Используйте группировку слоев для их надлежащей организации.
Задайте значения Сдвиг по X (X Offset) и Сдвиг по Y (Y Offset) для текстовых символов равными 0. Использование смещения текстовых символов может привести к периодическому непреднамеренному сокращению подписей. Вместо этого можно использовать функцию смещения в механизме создания подписей.
Явным образом определите цвет фона фрейма данных, который еще не использовался в других местах карты (хорошим выбором будет RGB 254,255,255). В противном случае любые символы и текст того же цвета, что и цвет фона, будут прозрачными.
Можно явным образом определить цвет фона в ArcMap. Фон будет отображаться прозрачным в средах, поддерживающих прозрачность PNG 24 и PNG 32.
Перед запуском большого задания по кэшированию создайте пробный кэш небольшой области на всех уровнях масштабирования. Это можно сделать, создав небольшой класс объектов, который покрывал бы область проверки. Затем, при создании кэша, выберите создание листов на основе области интереса. После создания кэша для этой небольшой области изучите листы и убедитесь, что они функционируют надлежащим образом. Это можно сделать, используя каталог сервисов для просмотра данного сервиса.
Создание кэша
-
Убедитесь, что создано достаточное количество масштабов для адекватного представления данных. Пользователи ArcMap видят пересчитанные листы в кэше при переходе от одного масштаба к другому. Кэширование недостаточного числа масштабов приведет к более частому пересчету и возможному искажению объектов. В то же время следует избегать ненужных крупных масштабов, чтобы не расходовать время на создание листов.
Попытайтесь использовать ту же схему листов для всех кэшей, созданных в вашей организации. Если в веб-приложениях используются кэшированные сервисы других организаций или подразделений, может понадобиться обеспечить соответствие схеме листов другой организации или задействовать схему, которая может использоваться обеими организациями. ArcGIS Online, Карты Google и Карты Bing являются примерами распространенных схем листов.
При создании кэшей, которые будут накладываться друг на друга в веб-приложении, по возможности используйте одинаковую схему листов. Не требуется создавать все кэши на всех уровнях масштаба. Однако следует сопоставить как можно больше масштабов.
На приведенном ниже изображении три кэша с различными диапазонами масштабов используют по возможности одни и те же масштабы. Общие масштабы обведены красным:
Перед началом создания листов убедитесь, что уровень вашего журнала ArcGIS for Server установлен на Строгий (Severe) или Предупреждение (Warning). При данных уровнях создается только отчет о проблемах или ошибках. Так как во время кэширования выполняются мгновенные, повторяющиеся запросы прорисовки к серверу, вам потребуется внесение в журнал детальной информации о каждом запросе.
При создании листов в кэше используйте опцию Область интересов (Area of interest), чтобы не создавать листы для ненужных областей. Может оказаться полезным создать новый класс объектов для специального выделения областей, которые следует предварительно создать. Можно использовать этот класс объектов в качестве области интересов при создании или обновлении кэша.
Избегайте использования кэширования по требованию для создания всего кэша. Рекомендуется предварительно создавать листы для областей, которые будут часто посещаться, и использовать кэширование по требованию для тех областей, посещение которых будет редким.
Для увеличения производительности попробуйте использовать локальные данные вместо данных, расположенных на общем сетевом диске или в многопользовательской базе геоданных. Размещение баз геоданных с аналогичным файлом на каждом ГИС-сервере обычно является самым быстрым способом доступа к данным для кэширования. Чтобы узнать, является ли это лучшим вариантом для вашего сайта см. Вопросы хранения данных для сайта ArcGIS for Server.
Задайте минимальное и максимальное количество экземпляров вашего сервиса System/CachingTools таким образом, чтобы экземпляры сервисов, представленные процессами ArcSOC.exe, не были загружены частично (в холостом режиме) или перегружены (полностью используя все ресурсы вашего ЦП). Подробное обсуждение данной темы см. в разделе Распределение ресурсов сервера для кэширования.
Изучите сообщения инструмента геообработки после запуска инструмента Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles). Если какой-либо экземпляр сервиса завершается со сбоем во время создания листов, масштабы и экстенты пропущенных областей указываются в сообщениях инструмента геообработки. Затем можно повторно запустить кэширование этих экстентов для заполнения отсутствующих листов.
Обслуживание кэша
Если исходные данные будут изменяться, можно использовать скрипт Python для регулярного автоматического запуска инструмента геообработки Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles). Этот инструмент может обновить все или только выбранные области кэша. Пример см. в разделе Автоматизация создания кэша и обновлений с помощью геообработки.
Если после создания кэша нет необходимости хранить все исходные данные на сервере, можно удалить некоторые слои из исходного документа карты. Оставьте хотя бы один слой в документе карты (рекомендуется оставить простой класс объектов с одним объектом, покрывающим экстент карты), а также оставьте для документа карты ту систему координат, которая использовалась для создания кэша. После остановки и повторного запуска сервиса можно безопасно удалить с сервера исходные данные для всех удаленных слоев. Если имя сервиса и имя кэша остаются идентичными, то при просмотре сервиса пользователи будут видеть данные из кэша.
Помните, что при использовании этого метода пользователи не получат достоверных результатов по запросу сервиса. Если необходимо использовать некоторые слои, доступные для запросов, следует оставить их в документе карты и сохранить исходные данные для этих слоев на сервере.