Построить кэш картографического сервера (Create Map Server Cache) (Сервер)

Уровень лицензии:BasicStandardAdvanced

Резюме

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

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

Синтаксис

CreateMapServerCache_server (input_service, service_cache_directory, tiling_scheme_type, scales_type, num_of_scales, dots_per_inch, tile_size, {predefined_tiling_scheme}, {tile_origin}, {scales}, {cache_tile_format}, {tile_compression_quality}, {storage_format})
ПараметрОбъяснениеТип данных
input_service

Картографический сервис или сервис изображений для кэширования.

Это строка, содержащая информацию как о сервере, так и о сервисе. Чтобы узнать, как сформировать эту строку, откройте ArcCatalog, выберите свой сервис в дереве каталога и обратите внимание на текст на панели инструментов Местоположение (Location). Затем поменяйте обратные косые черты на прямые, например GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer.

String
service_cache_directory

Родительская директория для кэша. Это должна быть зарегистрированная директория кэша ArcGIS for Server.

String
tiling_scheme_type

Выберите использование схемы листов NEW или PREDEFINED. Вы можете определить новую схему разбивки на листы с помощью этого инструмента или перейти к файлу предопределенной схемы (.xml). Предопределенная схема может быть создана путем запуска инструмента Создать схему листов кэша картографического сервера (Generate Map Server Cache Tiling Scheme).

  • NEWВы определите новую схему листов, используя другие различные параметры в этом инструменте, чтобы определить уровни масштаба, формат изображения, формат хранения данных и т. д. Это значение используется по умолчанию.
  • PREDEFINEDВы укажете файл схемы листов .xml, который уже существует на диске. Вы можете создать файл схемы листов с помощью инструмента Создать схему листов кэша картографического сервера (Generate Map Server Cache Tiling Scheme).
String
scales_type

Укажите, как вы будете определять масштабы листов.

  • STANDARDАвтоматически создает масштабы в зависимости от числа, определенного в параметре Число масштабов (Number of Scales) (num_of_scales в Python). Он будет использовать уровни, увеличивающиеся или уменьшающиеся кратно двум от 1:1 000 000, начиная с уровня, лучше всего соответствующего экстенту исходного документа карты. Например, если исходный документ карты имеет экстент 1:121 000 000 и требуется три уровня масштабов, картографический сервис создаст кэш с уровнями масштаба 1:128 000 000; 1:64 000 000 и 1:32 000 000. Это значение используется по умолчанию.
  • CUSTOMПозволяет дизайнеру кэша ввести любые желаемые масштабы.
String
num_of_scales

Количество уровней масштаба для создания в кэше. Эта опция отключена, если вы создаете собственный список масштабов.

Long
dots_per_inch

Точки на дюйм предполагаемого устройства вывода. Если выбрано значение DPI, не соответствующее разрешению устройства вывода, масштаб листа карты будет отображаться неправильно. Значение, предлагаемое по умолчанию, равно 96.

Long
tile_size

Ширина и высота листов кэша в пикселях. Значение по умолчанию составляет 256 на 256. Для достижения наилучшего баланса между производительностью и управляемостью избегайте отклонения от стандартных размеров 256 на 256 или 512 на 512.

Long
predefined_tiling_scheme
(дополнительно)

Путь к xml-файлу предопределенной схемы разбивки на листы (обычно называется conf.xml).

File
tile_origin
(дополнительно)

Начало (верхний левый угол) схемы листов в координатах пространственной привязки исходного документа карты. Экстент исходного документа карты должен быть в пределах этой области (но не обязательно совпадать с ней).

Point
scales
[scales,...]
(дополнительно)

Уровни масштаба, доступные для кэша. Они не представлены в виде дробей. Вместо этого используйте 500, чтобы представить масштаб 1:500, и т. д.

Value Table
cache_tile_format
(дополнительно)

Выберите формат файла PNG, PNG8, PNG24, PNG32, JPEG или MIXED для листов в кэше. PNG8 используется по умолчанию.

  • PNGСоздает формат PNG с различной битовой глубиной. Битовая глубина оптимизирована в соответствии со значениями цветового разнообразия и прозрачности в листе.
  • PNG8Формат изображения без потерь с 8-битным цветом, использующий индексированную палитру цветов и альфа-таблицу. Каждый пиксель хранит значение (0-255), используемое для поиска цвета в палитре цветов и прозрачности в альфа-таблице. 8-битные файлы PNG аналогичны изображениям GIF. Их прозрачный фон поддерживается в большинстве веб-браузеров.
  • PNG24Трехканальный формат изображения без потерь, поддерживающий большие цветовые вариации (16 млн. цветов) и имеющий ограниченную поддержку прозрачности. Каждый пиксел состоит из трех 8-битных цветовых каналов, а заголовок файла содержит единый цвет, представляющий прозрачный фон. Цвет, представляющий прозрачный цвет фона, можно установить в ArcMap. Версии Internet Explorer ниже 7-й не поддерживают этот тип прозрачности. Кэши, использующие PNG24, значительно больше кэшей, использующих PNG8 или JPEG, занимают больше места на диске и требуют большей пропускной способности для обслуживания клиентов.
  • PNG32Четырехканальный формат изображения без потерь, поддерживающие большие цветовые вариации (16 млн. цветов) и прозрачность. Каждый пиксел состоит из трех 8-битных цветовых каналов и одного 8-битного альфа-канала, представляющего уровень прозрачности для каждого пиксела. Хотя формат PNG32 допускает частично прозрачные пикселы в диапазоне от 0 до 255, инструмент создания кэша ArcGIS for Server записывает только полностью прозрачные (0) или полностью непрозрачные (255) значения в канал прозрачности. Кэши, использующие PNG32, значительно больше других поддерживаемых форматов, занимают больше места на диске и требуют большей пропускной способности для обслуживания клиентов.
  • JPEGТрехканальный формат изображения с потерями, поддерживающий большие цветовые вариации (16 млн. цветов), но не поддерживающий прозрачность. Каждый пиксел состоит из трех 8-битных цветовых каналов. Кэши в формате JPEG обеспечивают контроль над выходным качеством и размером.
  • СОВМЕЩЕННЫЙСоздает PNG 32 там, где присутствует прозрачность (иными словами, там, где виден фон фрейма данных). Создает JPEG для остальных листов. Это помогает уменьшить размер файлов в среднем, и, вместе с тем, обеспечить возможность корректного наложения на другие наборы кэша.
String
tile_compression_quality
(дополнительно)

Введите значение качества сжатия JPEG в диапазоне от 1 до 100. Значение по умолчанию составляет 75 для формата листов JPEG плитки и ноль для других форматов.

Сжатие поддерживается только для формата JPEG. Если вы выбираете высокое значение, это приведет к увеличению размера файла и более высокому качеству изображения. Если вы выбираете низкое значение, это приведет к уменьшению размера файла и низкому качеству изображения.

Long
storage_format
(дополнительно)

Определяет формат хранения листов.

  • COMPACTГруппирует листы в большие файлы, называемые пакетами. Этот формат хранения является более эффективным с точки зрения хранения и мобильности.
  • EXPLODEDХранит каждый лист в виде отдельного файла.
String

Пример кода

Пример 1 CreateMapServerCache

В данном примере кэш карты создается с помощью типа масштаба STANDARD.

# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
#               using standard tiling schema 
# Requirements: os, sys, time & 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
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache\\"
tilingSchemeType = "NEW"
scalesType = "STANDARD"
numOfScales = "4"
scales = ""
dotsPerInch = "96"
tileOrigin = ""
scales = ""
tileSize = "256 x 256"
cacheTileFormat = "PNG32"
tileCompressionQuality = ""
storageFormat = "COMPACT"
predefinedTilingScheme = ""


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.CreateMapServerCache_server(inputService,
                                               serviceCacheDirectory,
                                               tilingSchemeType, scalesType,
                                               numOfScales, dotsPerInch,
                                               tileSize, predefinedTilingScheme,
                                               tileOrigin, scales,
                                               cacheTileFormat,
                                               tileCompressionQuality,
                                               storageFormat)
                                              
    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 schema with 4 scales & default properties for"
    serviceName + " in " + str(elapsedtime) + " sec \n 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)
    
print "Executed creation of Map server Cache schema "
report.close()
Пример 2 CreateMapServerCache

В данном примере кэш карты создается с помощью масштабов CUSTOM.

# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
#              using Custom scales & jpg image format.
# Requirements: os, sys, time & 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, string, datetime, traceback

# 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
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache"
tilingSchemeType = "NEW"
scalesType = "CUSTOM"
numOfScales = "4"
dotsPerInch = "96"
tileSize = "256 x 256"
predefinedTilingScheme = ""
tileOrigin = ""
scales = "600265;350200;225400;44000"
cacheTileFormat = "JPEG"
tileCompressionQuality = "75"
storageFormat = "COMPACT"


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.CreateMapServerCache_server(inputService,
                                               serviceCacheDirectory,
                                               tilingSchemeType, scalesType,
                                               numOfScales, dotsPerInch,
                                               tileSize, predefinedTilingScheme,
                                               tileOrigin, scales, 
                                               cacheTileFormat,
                                               tileCompressionQuality,
                                               storageFormat)
    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 schema with custom scales successfully for "
    serviceName + " in " + str(elapsedtime) + " sec \n 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)
print "Executed creation of map server Cache schema using custom scales"

report.close()
Пример 3 CreateMapServerCache

В данном примере кэш карты создается с помощью предопределенной схемы листов.

# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
#               using existing predefined schema
# Requirements: os, sys, time & 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
serviceCacheDirectory = "C:\\arcgisserver\\directories\\arcgiscache"
tilingSchemeType = "PREDEFINED"
scalesType = ""
tileOrigin = ""
scalesType = ""
numOfScales = ""
scales = ""
dotsPerInch = "96"
tileSize = "256 x 256"
cacheTileFormat = "MIXED"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
predefinedTilingScheme = "C:/data/TilingSchemes/ArcGIS_Online_Bing_Maps_Google_Maps.xml"


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.CreateMapServerCache_server (inputService,
                                                serviceCacheDirectory,
                                                tilingSchemeType, scalesType,
                                                numOfScales, dotsPerInch,
                                                tileSize, predefinedTilingScheme,
                                                tileOrigin, scales,
                                                cacheTileFormat,
                                                tileCompressionQuality,
                                                storageFormat)

    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 schema using predefined tiling schema for "
    serviceName + " in " + str(elapsedtime) + " sec \n 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)

print "Executed creation of map server Cache schema using tiling scheme"
report.close()

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

Этот инструмент не использует параметры среды геообработки

Связанные темы

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

ArcGIS for Desktop Basic: Да
ArcGIS for Desktop Standard: Да
ArcGIS for Desktop Advanced: Да
9/11/2013