Часто задаваемые вопросы о кэшировании
Далее представлены часто задаваемые вопросы, посвященные кэшированию карты и глобуса. Вопросы посвящены как простым, так и сложным темам. Во многих случаях ответы повторяют информацию, доступную в других разделах справки. Однако данный раздел позволяет получить ответы на определенные вопросы быстрее, чем при поиске в справке.
Общие вопросы о кэшировании
Вопросы кэширования карт
- Как создать полный кэш для некоторых масштабов и частичный кэш для других масштабов?
- Как отобразить лист "Данные недоступны" для пустых областей кэша?
- Как избежать повторяющихся надписей?
- Почему при создании кэша на основе области интереса я вижу дополнительные листы за пределами области?
- Почему при создании листов по запросу дополнительные листы создаются за пределами экстента карты пользователя?
Вопросы о кэшировании глобуса
Почему инструменты кэширования перезапускают мои сервисы?
Инструмент Управление листами кэша картографического сервера (Manage Map Server Cache Tiles) и другие инструменты кэширования выполняют некоторые фоновые задания, для которых требуется перезапуск сервиса до и после выполнения инструмента. Если инструменты кэширования изменяют файл схемы листов conf.xml, необходимо перезапустить картографический сервис для применения изменений. Например, если вы использовали инструмент Управление листами кэша картографического сервера (Manage Map Server Cache Scales) для добавления и удаления масштабов из кэша, необходимо перезапустить картографический сервис для применения изменений схемы листов.
Во время перезапуска сервис временно недоступен.
Почему такие инструменты кэширования, как Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles), не показывают полное число экземпляров, назначенных мной для сервиса CachingTools?
Для каждого задания кэширования один экземпляр сервиса CachingTools должен выступать в качестве проверяющего экземпляра, распределяя работу на другие экземпляры. Когда такие инструменты кэширования, как Управление листами кэша картографического сервиса (Manage Map Server Cache Tiles), отображают максимальное число экземпляров по умолчанию, которое может работать над заданием, они вычитают один из всех имеющихся экземпляров CachingTools для учета этого проверяющего экземпляра.
Таким образом, если в кластере разрешено запускать два экземпляра CachingTools на один ГИС-сервер, и у вас в кластере есть три ГИС-сервера, то в общей сложности вам доступно 3 * 2 = 6 экземпляров, а инструменты кэширования будут отображать по умолчанию максимум 5 экземпляров, которые могут работать над любым заданием.
Как создать полный кэш для некоторых масштабов и частичный кэш для других масштабов?
Для крупных масштабов часто рекомендуется предварительно создать листы, которые вы считаете наиболее востребованными, и настроить создание других листов по запросу. Для малых масштабов, напротив, можно создать полные кэши, так как для них требуется меньше листов, которые будут часто просматриваться клиентами при первоначальном просмотре карты.
Можно несколько раз запустить инструмент Управление листами кэша сервера карты (Manage Map Server Cache Tiles) для создания частичного кэша на некоторых уровнях карты и полного кэша на других уровнях.
Предположим, у вас есть карта, которую вы хотите кэшировать на следующих масштабах:
- 1:128,000
- 1:64,000
- 1:32,000
- 1:16,000
- 1:8,000
- 1:4,000
Можно запустить инструмент Управление листами кэша сервера карт (Manage Map Server Cache Tiles) и поставить отметки только для масштабов 1:128000, 1:64000 и 1:32000. По умолчанию кэшируется полный экстент этих масштабов.
Затем можно запустить данный инструмент еще раз и поставить отметки только для масштабов 1:16000, 1:8000 и 1:4000. Кроме того, можно кэшировать эти уровни масштабов на основе экстента объектов в классе объектов, например в границе города или страны, вместо кэширования полного экстента карты. Так будет создан частичный кэш для этих трех уровней масштаба. Или же можно создавать остальные листы для этих масштабов по запросу.
Как отобразить лист "Данные недоступны" для пустых областей кэша?
Если область кэша не существует, можно создать лист по запросу или настроить веб-сервер для отображения в этом случае листа "Данные недоступны". Лист "Данные недоступны" также полезен, если пользователь перемещается на краю карты или переходит в область, для которой кэширование не завершено. Настройка возврата сервером листа "Данные недоступны" в некоторых случаях удобнее для пользователя, чем возврат пустых данных.
Для приложений на основе REST, например, созданных с помощью ArcGIS API для JavaScript, Flex и Silverlight, отображение листа "Данные недоступны" можно задать, разместив пустой лист (missing.png, missing.jpg или blank.png) в корневом уровне кэша. Сервер по умолчанию использует этот лист, если соответствующего листа в кэше нет. Инструкции:
- Создайте изображение с таким же размером и форматом, как у листа в схеме листов. Назовите его missing.png или missing.jpg. Если требуется пустой лист (например, для наложения сервисов, для которых необходима прозрачность), используйте файл blank.png. Сведения о загрузке примера листа см. в статье базы знаний Esri 36939.
- Сохраните файл missing.png, missing.jpg или blank.png в папке _alllayers картографического сервиса, например opt/arcgis/server/usr/directories/arcgiscache/MyMapService/Layers/_alllayers/missing.png.
Сервер автоматически обрабатывает отсутствующие листы, заменяя их на специальный лист в корневом уровне кэша.
Как избежать повторяющихся надписей?
Если вы используете динамический механизм надписывания в документе карты для размещения надписей (в отличие от аннотаций), в листах кэша можно иногда увидеть дублирующиеся надписи. Они должны встречаться не чаще, чем одна надпись на 4096 пикселов в любом направлении. Все повторяющиеся надписи можно удалить с помощью аннотаций. При использовании аннотации надписи связываются с одной точкой на карте и повторяющиеся надписи не возникают.
Почему при создании кэша на основе области интереса я вижу дополнительные листы за пределами области?
Чтобы избежать появления повторяющихся надписей на листах, инструменты кэширования сначала отображают области размером 4096 x 4096 пикселов (256 листов размером 256 x 256 пикселов), которые затем разбиваются на листы запрошенного размера. В зависимости от схемы листов, а также расположения и формы области интереса некоторые листы в области 4096 x 4096 пикселов могут выйти за рамки области интереса. Такая ситуация предсказуема. Дополнительные листы не должны отображаться за пределами области интереса на расстоянии 4096 пикселов в любом направлении.
Почему при создании листов по запросу дополнительные листы создаются за пределами экстента карты пользователя?
При запросе новых листов (по требованию пользователя или с помощью инструментов кэширования) листы всегда создаются в группах. Механизм кэширования никогда не создает только один лист за раз. В таком случае появилось бы слишком много повторяющихся надписей, так как сервер не знал бы о надписях на соседних листах.
Если включено кэширование по запросу и вы перемещаетесь в некэшированную область, сервер рисует область размером 4096 x 4096 пикселов, которая затем разбивается на листы (размер этой области составляет 2048 x 2048 пикселов при использования сглаживания). Поэтому если размер листов 256 x 256 пикселов, может быть создано до 256 листов. Если карта содержит множество слоев или сложных символов, это может привести к длительному отображению карты.
Поэтому настоятельно рекомендуется предварительно создать листы для часто используемых областей карты и использовать кэширование по запросу только для менее популярных областей. Избегайте построения всего кэша по запросу при использовании сложного исходного документа карты.
Какую схему листов следует использовать для сервисов глобуса?
В отличие от картографических сервисов все сервисы глобуса используют одну схему листов. Поэтому не нужно ничего делать для настройки схемы листов для сервисов глобуса. Данные кэшируются автоматически на всех уровнях встроенной схемы листов глобуса.
Если посмотреть внимательнее, можно увидеть эти уровни в ArcGlobe и ArcGIS Explorer. При увеличении масштаба глобуса можно заметить, что изображение становится более четким или размытым, в зависимости от высоты.
Масштабы в схеме листов ArcGIS Online/Bing Maps/Google Maps приблизительно совпадают со встроенными уровнями масштабов в ArcGlobe. Схема листов обычно бывает полезна, если вы планируете осуществлять драпировку двухмерного картографического сервиса на поверхность глобуса. Помимо того, что схема листов идеально подходит для отображения, ArcGlobe разработан для очень быстрого отображения двухмерных сервисов с помощью этой схемы листов.