Создать схему листов кэша картографического сервиса (Сервер)

Краткая информация

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

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

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

Параметры

ПодписьОписаниеТип данных
Точка отсчета разбиения на листы (в единицах карты)

Верхний левый угол схемы листов, в координатах пространственной привязки исходного фрейма данных.

Point
Выходная схема листов

Путь и имя создаваемого файла схемы листов.

File
Число масштабов

Количество уровней масштаба в схеме листов.

Long
Масштабы

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

Value Table
Точек (пикселов) на дюйм

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

Long
Размер листа

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

  • 128 x 128128 на 128 пикселов
  • 256 x 256256 на 256 пикселов
  • 512 x 512512 на 512 пикселов
  • 1024 x 10241024 на 1024 пикселов
String

arcpy.management.GenerateMapServerCacheTilingScheme(tile_origin, output_tiling_scheme, num_of_scales, scales, dots_per_inch, tile_size)
ИмяОписаниеТип данных
tile_origin

Верхний левый угол схемы листов, в координатах пространственной привязки исходного фрейма данных.

Point
output_tiling_scheme

Путь и имя создаваемого файла схемы листов.

File
num_of_scales

Количество уровней масштаба в схеме листов.

Long
scales
[scales,...]

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

Value Table
dots_per_inch

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

Long
tile_size

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

  • 128 x 128128 на 128 пикселов
  • 256 x 256256 на 256 пикселов
  • 512 x 512512 на 512 пикселов
  • 1024 x 10241024 на 1024 пикселов
String

Пример кода

Пример GenerateMapServerCacheTilingScheme

Создает схему листов кэша карты с четырьмя масштабами.

# Name: GeneateMapServerCacheTilingScheme.py
# Description: The following stand-alone script demonstrates how to create map
#               server cache schema using a given map document at a given
#               "pathForOutputXml"
# 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
mapDocument = "C:/data/101/Portland/mxd/_M_Portland_classic_FGDB_Local.mxd"
dataFrame = ""
outputTilingScheme = "C:/data/port.xml"
tileOrigin = ""
numOfScales = "4"
scales = "500000,250000,125000,64000"
tileSize = "256 x 256"
dotsPerInch = "96"

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

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

try:
    starttime = time.clock()
    result = arcpy.server.GenerateMapServerCacheTilingScheme(mapDocument, dataFrame,
                                                             tileOrigin, outputTilingScheme,
                                                             numOfScales, scales,
                                                             dotsPerInch, tileSize)
    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 MapServer cache tiling schema successfully using" + \
        mapDocument + " at "+ outputTilingScheme + " 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("Created Map server Cache Tiling schema ")

report.close()