ArcGIS Desktop

  • ArcGIS Pro
  • ArcMap

  • My Profile
  • Справка
  • Sign Out
ArcGIS Desktop

ArcGIS Online

Картографическая платформа вашей организации

ArcGIS Desktop

Полноценная профессиональная ГИС

ArcGIS Enterprise

ГИС предприятия

ArcGIS Developers

Инструменты для встраивания приложений с местоположениями

ArcGIS Solutions

Бесплатные шаблоны карт и приложений для отрасли

ArcGIS Marketplace

Получение приложения и данных для вашей организации.

  • Документация
  • Поддержка
Esri
  • Войти
user
  • Мой профиль
  • Выход

ArcMap

  • На главную
  • Начало работы
  • Карта
  • Анализ
  • Управление данными
  • Инструменты
  • Дополнительные модули

Управление листами кэша картографического сервера

  • Сводка
  • Использование
  • Синтаксис
  • Пример кода
  • Параметры среды
  • Информация о лицензиях

Сводка

Создает и обновляет листы в существующем кэше веб-слоя листов (в ArcGIS Enterprise или ArcGIS Online), слоев изображений веб-карты в ArcGIS Enterprise и кэшированных картографических сервисах или сервисах изображений в автономном сервере. Этот инструмент используется для создания новых листов, замены отсутствующих листов, перезаписи устаревших листов и удаления листов.

Использование

  • Этому инструменту может потребоваться много времени на запуск для кэшей, охватывающих большой географический экстент или очень крупные масштабы карты. Если этот инструмент будет отменен, создание листов остановится, но существующие листы не удалятся. Это означает, что можно отменить этот инструмент, если не хватает времени, и снова запустить его позже на том же кэше, задав параметр Режим обновления как Заново создать пустые листы (update_mode = "RECREATE_EMPTY_TILES" в Python).

Синтаксис

arcpy.server.ManageMapServerCacheTiles(input_service, scales, update_mode, {num_of_caching_service_instances}, {area_of_interest}, {update_extent}, {wait_for_job_completion})
ПараметрОбъяснениеТип данных
input_service

Веб-слой листов или слой изображения карты, листы кэша которого нужно обновить.

Image Service; MapServer
scales
[scales,...]

Уровни масштаба, на которых вы создадите или удалите листы при запуске инструмента в зависимости от update_mode.

Double
update_mode

Режим для обновления кэша.

  • RECREATE_EMPTY_TILES —В этом случае создаются только пустые листы. Существующие листы останутся неизменными. Эта опция недоступна для веб-слоев листов, опубликованных в ArcGIS Online ArcGIS Online.
  • RECREATE_ALL_TILES —Существующие листы будут заменены, а новые листы добавлены, если экстент изменился.
  • DELETE_TILES —Листы будут удалены из кэша. Структура папки кэша не будет удалена.
String
num_of_caching_service_instances
(Дополнительный)

Общее количество экземпляров сервиса System/CachingTools, которое будет выделено для работы этого инструмента. Вы можете увеличить параметр максимальное число экземпляров на компьютер для сервиса System/CachingTools в окне Редактор сервисов, которое доступно через административное подключение к ArcGIS Server. Убедитесь в том, что ваши серверы смогут поддерживать выбранное количество экземпляров.

При подключении к автономному серверу, число экземпляров по умолчанию равно значению, заданному для параметра Максимальное число экземпляров сервиса инструмента кэширования.

Long
area_of_interest
(Дополнительный)

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

Если не указать значение этого параметра, по умолчанию используется полный экстент карты.

Feature Set
update_extent
(Дополнительный)

Прямоугольный экстент, в пределах которого должны быть созданы или удалены листы, в зависимости от значения параметра update_mode. Не рекомендуется задавать оба значения: и update_extent, и area_of_interest. Если заданы значения обоих параметров, будет использоваться значение area_of_interest.

Extent
wait_for_job_completion
(Дополнительный)

Этот параметр позволяет следить за ходом задания кэширования, выполняемого на портале.

  • WAIT —Этот инструмент геообработки продолжит работать в окне Python, в то время как задание кэширования выполняется на Portal for ArcGIS или ArcGIS Online. С помощью этой опции вы можете запросить подробные отчеты о ходе процесса в любое время и просматривать сообщения геообработки по мере их появления. Это является опцией по умолчанию. Рекомендуется использовать эту опцию в скриптах Python.
  • DO_NOT_WAIT —Инструмент геообработки посылает задание на сервер, позволяя вам запускать другие задачи геообработки. Эта опция используется, когда вы хотите построить кэш автоматически в момент публикации сервиса. Вы также можете установить эту опцию на любом другом создаваемом кэше.
Boolean

Производные выходные данные

ИмяОбъяснениеТип данных
out_job_url

Выходной URL-адрес.

String

Пример кода

ManageMapServerCacheTiles, пример (автономный скрипт)

Создание или обновление всех листов в кэше с помощью опции RECREATE_ALL_TILES.

# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all 
# cache tiles for the scales in the cache tiling scheme.

# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
# "sys.argv[]"

# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string

# Set environment settings
env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""

currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = "C:/data/report_%s.txt" % arg1

# print results of the script to a report
report = open(file,'w')

try:
    starttime = time.clock()
    result = arcpy.ManageMapServerCacheTiles_server(inputService, scales,
                                                    updateMode,
                                                    numOfCachingServiceInstances,
                                                    areaOfInterest, updateExtents,
                                                    waitForJobCompletion)
    finishtime = time.clock()
    elapsedtime= finishtime - starttime

    #print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))

    print "Created cache tiles for given schema successfully for " +\
    serviceName + " in " + str(elapsedtime) + " sec on " + arg2
    
except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)
report.close()
    
print "Created Map server Cache Tiles "
ManageMapServerCacheTiles, пример 2 (автономный скрипт)

Обновление пустых листов для некоторых масштабов с помощью опции RECREATE_EMPTY_TILES.

# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate  
# empty tiles for one of the default number of scales in the cache
# tiling scheme

# Requirements: os, sys, time and traceback modules
# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
# "sys.argv[]"

# Import system modules
import arcpy
from arcpy import env
import os, sys, time, datetime, traceback, string

# Set environment settings
env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_EMPTY_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""
cacheDir = "c:\\arcgisserver\\arcgiscache\\"

currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = "C:/data/report_%s.txt" % arg1

# print results of the script to a report
report = open(file,'w')

# use "scales[0]","scales[-1]","scales[0:3]"

try:
    starttime = time.clock()
    result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
                                                    updateMode, numOfCachingServiceInstances,
                                                    areaOfInterest, updateExtents,
                                                    waitForJobCompletion)
    finishtime = time.clock()
    elapsedtime = finishtime - starttime
    ## print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))
    
    
    print "Created cache tiles for scale =" + str(scales[-1]) + "for " +\
    serviceName + " at " + cacheDir + " in " + str(elapsedtime) +\
    " sec on " + arg2

except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)
    
report.close()   
print "Rereated Map server Cache Tiles for scale = " + str(scaleValues[-1])
ManageMapServerCacheTiles, пример 3 (автономный скрипт)

Обновление листов с использованием Области интереса.

# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all
# tiles using given feature class.

# Requirements: os, sys, time and traceback modules

# Any line that begins with a pound sign is a comment and will not be executed
# Empty quotes take the default value.
# To accept arguments from the command line replace values of variables to
# "sys.argv[]"

# Import system modules
import arcpy
import os
import sys
import time
import datetime
import traceback
import string

# Set environment settings
arcpy.env.workspace = "C:/data"

# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = "C:/data/shp/CaTxFlMaMin.shp"
waitForJobCompletion = "WAIT"
updateExtents = ""

currentTime = datetime.datetime.now()
arg1 = currentTime.strftime("%H-%M")
arg2 = currentTime.strftime("%Y-%m-%d %H:%M")
file = "C:/data/report_%s.txt" % arg1

# print results of the script to a report
report = open(file,'w')

# use "scales[0]","scales[-1]","scales[0:3]"

try:
    starttime = time.clock()
    result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
                                                    updateMode,
                                                    numOfCachingServiceInstances,
                                                    areaOfInterest, updateExtents,
                                                    waitForJobCompletion)                                           
    finishtime = time.clock()
    elapsedtime = finishtime - starttime

    #print messages to a file
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))
    
    print "Created cache tiles for scale =" + str(scales[-1]) + "for " +\
    serviceName + "at " + cacheDir + " using specified feature class " +\
    areaOfInterest + " in " + str(elapsedtime) + " sec on " + arg2

except Exception, e:
    # If an error occurred, print line number and error message
    tb = sys.exc_info()[2]
    report.write("Failed at \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)

report.close()     
print "Rereated Map server Cache Tiles"
print "for scale = " + str(scaleValues[-1]) + " using area of Interest"

Параметры среды

  • Текущая рабочая область

Информация о лицензиях

  • Basic: Да
  • Standard: Да
  • Advanced: Да

Связанные разделы

  • Общий обзор группы инструментов Кэширование

ArcGIS Desktop

  • На главную
  • Документация
  • Поддержка

ArcGIS

  • ArcGIS Online
  • ArcGIS Desktop
  • ArcGIS Enterprise
  • ArcGIS
  • ArcGIS Developer
  • ArcGIS Solutions
  • ArcGIS Marketplace

Об Esri

  • О нас
  • Карьера
  • Блог Esri
  • Конференция пользователей
  • Саммит разработчиков
Esri
Расскажите нам, что вы думаете.
Copyright © 2021 Esri. | Конфиденциальность | Правовая информация