生成地图服务器缓存切片方案 (服务器)

摘要

生成用于定义比例级别、切片尺寸以及其他 Web 切片图层属性的自定义切片方案文件。

切片方案是一种源地图文档空间参考与切片格网之间的映射,用于说明客户端应如何引用缓存中的切片。 切片格网将使用细节层次(比例)、行和列参考方案。 方案中还将定义缓存中切片的比例级别(细节层次)、切片大小(以像素为单位)以及显示切片时最常用的屏幕分辨率。 要生成地图缓存需要切片方案。

使用情况

  • 默认情况下,切片原点起始于服务的源地图文档所用坐标系的左上角。

  • 选中即用型格式参数后,将使用开放切片包规范生成缓存内容方案。

参数

标注说明数据类型
地图文档

切片方案中将用到的当前地图或现有 .mxd 文件。

Map
切片原点(地图单位)

切片方案的原点(左上角),采用源数据框的空间参考坐标。

Point
输出切片方案

要创建的切片方案文件的路径和文件名。

File
比例级数

要包含在切片方案中的比例级别数量。

Long
比例

要包含在切片方案中的比例级别。 不使用分数表示比例级别, 而使用 500 表示比例 1:500,依此类推。

Value Table
每英寸的点数(像素)

专用输出设备的每英寸点数 (DPI)。 如果指定的 DPI 与输出设备的分辨率不匹配,则地图切片将显示错误比例。 默认值为 96。

Long
切片大小

指定缓存切片的宽度和高度(以像素为单位)。 为在性能和可管理性之间寻求最佳平衡,应避免偏离标准尺寸 256 x 256 或 512 x 512。

  • 128 x 128 像素缓存切片的宽度和高度将为 128 x 128 像素。
  • 256 x 256 像素缓存切片的宽度和高度为 256 x 256 像素。 这是默认设置。
  • 512 x 512 像素缓存切片的宽度和高度将为 512 x 512 像素。
  • 1024 x 1024 像素缓存切片的宽度和高度将为 1024 x 1024 像素。
String
即用型格式
(可选)

指定将使用的缓存方案的文件格式以及是否将使用开放切片包规范生成该文件。

  • 选中 - 将使用开放切片包规范以 JSON 格式生成缓存方案。 必须在输出文件夹参数中指定输出文件夹。
  • 未选中 - 将以 XML 格式生成缓存方案。 这是默认设置。

Boolean
输出文件夹
(可选)

将以 JSON 格式创建缓存方案和 iteminfo 文件的文件夹位置。

Folder

arcpy.server.GenerateMapServerCacheTilingScheme(in_map, tile_origin, output_tiling_scheme, num_of_scales, scales, dots_per_inch, tile_size, {ready_to_serve_format}, {output_folder})
名称说明数据类型
in_map

切片方案中将用到的当前地图或现有 .mxd 文件。

Map
tile_origin

切片方案的原点(左上角),采用源数据框的空间参考坐标。

Point
output_tiling_scheme

要创建的切片方案文件的路径和文件名。

File
num_of_scales

要包含在切片方案中的比例级别数量。

Long
scales
[scales,...]

要包含在切片方案中的比例级别。 不使用分数表示比例级别, 而使用 500 表示比例 1:500,依此类推。

Value Table
dots_per_inch

专用输出设备的每英寸点数 (DPI)。 如果指定的 DPI 与输出设备的分辨率不匹配,则地图切片将显示错误比例。 默认值为 96。

Long
tile_size

指定缓存切片的宽度和高度(以像素为单位)。 为在性能和可管理性之间寻求最佳平衡,应避免偏离标准尺寸 256 x 256 或 512 x 512。

  • 128 x 128缓存切片的宽度和高度将为 128 x 128 像素。
  • 256 x 256缓存切片的宽度和高度为 256 x 256 像素。 这是默认设置。
  • 512 x 512缓存切片的宽度和高度将为 512 x 512 像素。
  • 1024 x 1024缓存切片的宽度和高度将为 1024 x 1024 像素。
String
ready_to_serve_format
(可选)

指定将使用的缓存方案的文件格式以及是否将使用开放切片包规范生成该文件。

  • READY_TO_SERVE_FORMAT将使用开放切片包规范以 JSON 格式生成缓存方案。 必须在输出文件夹参数中指定 output_folder 参数。
  • NON_READY_TO_SERVE_FORMAT将以 XML 格式生成缓存方案。 这是默认设置。
Boolean
output_folder
(可选)

将以 JSON 格式创建缓存方案和 iteminfo 文件的文件夹位置。

Folder

代码示例

GenerateMapServerCacheTilingScheme 示例 1(XML 格式)

以下示例创建 XML 格式的地图缓存切片方案。

# 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 = "E:/path/to/myfolder"

# List of input variables for map service properties

# Reference map to use for cache tiling sceheme generation
aprx = arcpy.mp.ArcGISProject(r"E:\Data\path\to\myAPRX.aprx")
mapDocument = aprx.listMaps("myMapName")[0]
outputTilingScheme = "E:/path/to/myschema.xml"
tileOrigin = ""
numOfScales = "4"
scales = "4000000,2000000,100000,50000"
tileSize = "256 x 256"
dotsPerInch = "96"

# print results of the script to a report

file = r'E:\path\to\myreport.txt'
report = open(file,'w')

try:
    #starttime = time.clock()
    result = arcpy.server.GenerateMapServerCacheTilingScheme(mapDocument,
                                                             tileOrigin, outputTilingScheme,
                                                             numOfScales, scales,
                                                             dotsPerInch, tileSize)

    #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 )

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()
GenerateMapServerCacheTilingScheme 示例 2(JSON 格式)

以下示例创建 JSON 格式的地图缓存切片方案。

# Name: GeneateMapServerCacheTilingScheme.py
# Description: The following stand-alone script demonstrates how to create map
#               server cache schema in ready to serve format using a given map document at a given
#               folder
# 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 = "E:/path/to/myfolder"

# List of input variables for map service properties

# Reference map to use for cache tiling sceheme generation
aprx = arcpy.mp.ArcGISProject(r"E:\Data\path\to\myAPRX.aprx")
mapDocument = aprx.listMaps("myMapName")[0]
outputTilingScheme = "None"
tileOrigin = ""
numOfScales = "4"
scales = "4000000,2000000,100000,50000"
tileSize = "256 x 256"
dotsPerInch = "96"
ready_to_serve_format = "READY_TO_SERVE_FORMAT"
output_folder = "E:\path\to\myfolder"

# print results of the script to a report

file = r'E:\path\to\myreport.txt'
report = open(file,'w')

try:
    #starttime = time.clock()
    result = arcpy.server.GenerateMapServerCacheTilingScheme(mapDocument,
                                                             tileOrigin, outputTilingScheme,
                                                             numOfScales, scales,
                                                             dotsPerInch, tileSize,
                                                             ready_to_serve_format,
                                                             output_folder)

    #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 )

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()

许可信息

  • Basic: 是
  • Standard: 是
  • Advanced: 是

相关主题