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

Сводка

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

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

  • Этот инструмент работает только с картографическими сервисами и сервисами изображений ArcGIS Server.

  • Этот инструмент работает только со слоями карт и изображений в ArcGIS Enterprise, а также с сервисами карт и изображений ArcGIS Server.

  • Растровые данные лучше всего публикуются с использованием формата изображений JPEG или MIXED. При использовании формата JPEG или MIXED с векторными картами используйте высокую степень сжатия (например, 90), чтобы уменьшить размытость линий и текста. Векторные данные также могут быть опубликованы в формате PNG.

  • Формат изображения кэша нельзя изменить после создания кэша. Кэш сначала необходимо удалить перед переключением на другой формат.

Синтаксис

CreateMapServerCache(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})
ParameterОбъяснениеТип данных
input_service

Слой карт или изображений для кэширования.

Image Service; MapServer
service_cache_directory

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

String
tiling_scheme_type

Указывает, как будет определена схема листов. Вы можете определить новую схему разбивки на листы с помощью этого инструмента или перейти к файлу предопределенной схемы (.xml). Предопределенная схема может быть создана путем запуска инструмента Создать схему листов кэша картографического сервиса.

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

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

  • STANDARDАвтоматически создает масштабы в зависимости от числа, указанного в параметре Число масштабов (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) предполагаемого устройства вывода. Если выбрано значение DPI, не соответствующее разрешению устройства вывода, масштаб листа карты будет отображаться неправильно. Значение, предлагаемое по умолчанию, равно 96.

Long
tile_size

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

  • 128 x 128128 на 128 пикселов.
  • 256 x 256256 на 256 пикселов. Используется по умолчанию.
  • 512 x 512512 на 512 пикселов.
  • 1024 x 10241024 на 1024 пикселов.
String
predefined_tiling_scheme
(Дополнительный)

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

File
tile_origin
(Дополнительный)

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

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

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

Value Table
cache_tile_format
(Дополнительный)

Задает формат листа кэша.

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

Качество сжатия JPEG (1–100). Значение по умолчанию – 75 для формата листов JPEG и 0 для других форматов.

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

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

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

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

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

NameОбъяснениеТип данных
out_service_url

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

Строковое

Пример кода

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

В следующем примере создается схема листов и подготовительные папки для кэша картографического сервиса с использованием типа масштабирования 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 as 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(str(e))

print("Executed creation of Map server Cache schema ")
report.close()
CreateMapServerCache, пример 2 (автономный скрипт)

В следующем примере создается схема листов и подготовительные папки для кэша картографического сервиса с использованием типа масштабирования 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 as 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(str(e))

print("Executed creation of map server Cache schema using custom scales")

report.close()
CreateMapServerCache, пример 3 (автономный скрипт)

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

# 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 as 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(str(e))

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

Environments

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

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

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

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