Создать схему листов кэша картографического сервиса (Сервер)
Краткая информация
Создает XML-файл схемы листов, определяющий уровни масштаба, размеры листов и другие свойства кэша картографического сервиса. Этот инструмент полезен при создании схемы листов для использования в нескольких кэшах. Вы можете загрузить файл схемы листов при создании кэша в ArcGIS for Desktop или ArcGIS Server Manager или запустить Построить кэш картографического сервиса и передать файл схемы листов в качестве параметра.
Схема листов описывает, как клиенты должны ссылаться на листы в кэше, и является сопоставлением пространственной привязки исходного документа карты и сетки листов. Сетка листов использует схему привязки уровней детальности (масштабов), строк и столбцов. Схема также определяет уровни масштабов (уровни детальности), при которых в кэше есть листы, размер листов в пикселях и разрешение экрана, при котором листы будут отображаться наиболее часто. Схема листов необходима для создания кэша карты.
Использование
Если вы уже определили кэш в ArcGIS for Desktop или ArcGIS Server Manager, то вам не придется использовать этот инструмент. У вас уже будет схема листов (conf.xml) в папке кэша, на которую можно ссылаться при создании других кэшей.
-
По умолчанию начало координат разбиения на листы лежит в верхнем левом углу системы координат, используемой исходным документом карты сервиса.
-
Как только кэш будет создан, уровни масштаба станут единственной изменяемой частью схемы листов. Используйте Управление масштабами кэша картографического сервиса (Manage Map Server Cache Scales) для добавления и удаления уровней масштаба.
Синтаксис
Параметр | Объяснение | Тип данных |
map_document |
Исходный документ карты, который будет использоваться для схемы листов. | File |
data_frame |
Фрейм данных, который будет использоваться для схемы листов. | String |
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 на 256. Для достижения наилучшего баланса между производительностью и управляемостью избегайте отклонения от стандартных размеров 256 на 256 или 512 на 512.
| 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.GenerateMapServerCacheTilingScheme_server(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, 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 "Created Map server Cache Tiling schema "
report.close()