生成地图服务器缓存 (Server)

许可等级:BasicStandardAdvanced

摘要

为 ArcGIS Server 地图服务生成静态图像切片的缓存。

法律声明法律声明:

ArcGIS 10 中此工具已弃用。新的操作流程是先通过创建地图服务器缓存对缓存进行初始化,然后再使用管理地图服务器缓存切片将切片添加到缓存中。

用法

语法

GenerateMapServerCache_server (server_name, object_name, data_frame, out_folder, tiling_scheme_type, scales_type, num_of_scales, dpi, tile_width, tile_height, {map_or_layers}, {tiling_schema}, {tile_origin}, {levels}, {layer}, {thread_count}, {Antialiasing}, {cache_format}, {tile_compression_quality})
参数说明数据类型
server_name

用于生成缓存的 ArcGIS Server 的主机名。

String
object_name

用于生成缓存的地图服务的名称。

String
data_frame

要缓存的地图文档数据框。请确保选择的数据框与为地图服务选择的数据框相同。

String
out_folder

此地图服务缓存的父目录。

String
tiling_scheme_type

选择采用 NEW 还是 PREDEFINED 切片方案。可自定义新的切片方案,也可加载预定义的方案文件 (.xml)。预定义方案的创建可以通过运行“生成地图服务器缓存切片方案 GP”工具来实现。

默认设置为 NEW。

Boolean
scales_type

设置比例级别

  • STANDARD根据“比例级数”字段中定义的级数自动生成比例。该比例将采用从 1:1000000 递增或递减一半的级别,并将最接近于源地图文档范围的级别作为起始比例。例如,如果源地图文档的范围是 1:121,000,000,并且已定义 3 个比例级别,那么该地图服务将以下列比例级别创建缓存:1:128,000,000、1:64,000,000 和 1:32,000,000。这是默认设置。
  • CUSTOM允许缓存设计器以所需的任意比例级别创建“比例级数”输入框中所指定数量的比例。
Boolean
num_of_scales

要在缓存中创建的比例级数。

Long
dpi

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

Long
tile_width

输出地图切片的宽度(以像素为单位)。较小的宽度可提高从缓存请求切片的应用程序的性能,这是因为只有较少的数据通过网络。但切片越小,缓存越大且创建时间越长。默认切片宽度为 512。

Long
tile_height

输出地图切片的高度(以像素为单位)。较小的高度可提高从缓存请求切片的应用程序的性能,这是因为只有较少的数据通过网络。但切片越小,缓存越大且创建时间越长。默认切片高度为 512。

Long
map_or_layers
(可选)

选择生成FUSED 或 MULTI_LAYER 缓存:

  • FUSED以源地图文档中所有图层的融合图像的形式创建各个切片。
  • MULTI_LAYER仅存在一个缓存,但该缓存将被划分成各个子缓存,而子缓存中将包含源地图文档中每个图层的切片。
Boolean
tiling_schema
(可选)

预定义切片方案文件的路径。

String
tile_origin
(可选)

指定在源地图文档空间参考的坐标中切片方案的原点(左上角)。源地图文档的范围必须在此原点范围内(但不必与原点重合)。

String
levels
Scale; Scale...
(可选)

缓存地图服务时所使用的比例。

String
layer
Layer; Layer...
(可选)

选择 MULTI_LAYER 缓存类型时要包含在缓存中的图层。

String
thread_count
(可选)

生成缓存时所使用的 MapServer 实例数。

Long
Antialiasing
(可选)

选择是否在渲染切片时使用抗锯齿功能。如果选择了 ANTIALIASING,则会对线、边框和文本的边缘进行平滑处理。此选项会带来性能开销。栅格数据不会获得任何益处。

Boolean
cache_format
(可选)

为缓存中的切片选择 PNG8、PNG24、PNG32 或 JPEG 文件格式。PNG24 为默认选项。

  • PNG8一种无损 8 位彩色图像格式,使用索引调色板和 alpha 表。每个像素存储一个用于查看调色板中的颜色和 alpha 表中的透明度的值 (0-255)。8 位 PNG 类似于 GIF 图像,并对多数 Web 浏览器的透明背景提供最佳支持。
  • PNG24一种无损三通道图像格式,支持大幅度的颜色变化(1600 万个颜色),并对透明度提供有限的支持。每个像素包含三条 8 位颜色通道,并且文件头中包含用于表示透明背景的单一颜色。可在 ArcMap 中对表示透明背景色的颜色进行设置。低于版本 7 的 Internet Explorer 版本不支持此透明类型。采用 PNG24 的缓存比采用 PNG8 或 JPEG 的缓存大得多,并且需要占用更多磁盘空间和更大带宽才能为客户端提供服务。
  • PNG32一种无损四通道图像格式,支持大幅度的颜色变化(1600 万个颜色),并支持透明度。每个像素包含三条 8 位颜色通道和一条表示每个像素的透明度级别的 8 位 alpha 通道。虽然 PNG32 格式允许部分透明像素位于范围 0 到 255 之间,但是 ArcGIS Server 缓存生成工具仅将完全透明值 (0) 或完全不透明值 (255) 写入透明度通道。采用 PNG32 的缓存比采用其他受支持的格式的缓存大得多,并且需要占用更多磁盘空间和更大带宽才能为客户端提供服务。
  • JPEG一种有损三通道图像格式,支持大幅度的颜色变化(1600 万个颜色),但不支持透明度。每个像素包含三条 8 位颜色通道。采用 JPEG 的缓存可控制输出质量和大小,并且比 PNG 格式的压缩程度更高。
String
tile_compression_quality
(可选)

针对 JPEG 压缩质量输入一个介于 1 和 100 之间的值。对于 JPEG 切片格式,默认值为 75;对于其他切片格式,默认值为 0。

仅 JPEG 格式支持压缩。压缩等级取决于数据,但也可通过更改压缩质量进行控制。选择较高的值,则生成的图像的压缩程度较低,但质量较高。如果选择了较低的值,则生成的图像的压缩程度较高,但质量较低。

Long

代码实例

# Script Name: Generate Fused Map Server Cache
# Description: Generates a fused map server cache using PNG8 image format
# Uncomment sys.argv[] lines to accept arguments from the command line.

# Import standard library modules
import sys, string, os, arcgisscripting

# Create the Geoprocessor object
gp = arcgisscripting.create()

# Set the path to the cache.
# Example: \\\\myServer\\arcgiscache\\MyServiceFolder_MyService\\
out_folder = "\\\\myServer\\arcgiscache\\MyServiceFolder_MyService\\"
#out_folder = sys.argv[1]

# Set the SOM server name
# Example: "mySOM"
server_name = "mySOM"
#server_name = sys.argv[2]

# Set the object_name
# Example: "MyServiceFolder/MyService"
object_name = "MyServiceFolder/MyService"
#object_name = sys.argv[3]

# Set the data frame
# Example: "Layers"
data_frame = "Layers"
#data_frame = sys.argv[4]

# Set the map cache tiling origin
# Example: "-180 90"
tile_origin = "-180 90"
#tile_origin = sys.argv[5]

# Set the scale levels for the cache.
# Example: "2000000;500000;250000"
scales = "2000000;500000;250000"
#scales = sys.argv[6]

# Set the layers to cache.
# Example: "My First Layer;My Second Layer;My Third Layer"
layers = "My First Layer;My Second Layer;My Third Layer"
#layers = sys.argv[7]

# Set number of instances to use while updating the cache
# Example: "3"
thread_count = "3"
#thread_count = sys.argv[8]

# Set cache tile image format.
# Example: "PNG8"
cache_format = "PNG8"
#layers = sys.argv[9]

# Non-argument variable declarations
tiling_scheme_type = "NEW"
tiling_schema = ""
scales_type = "STANDARD"
num_of_scales = "3"
dpi = "96"
tile_width = "512"
tile_height = "512"
map_or_layers = "FUSED"
antialiasing = "ANTIALIASING"
tile_compression_quality = "0"
 
try:
    print 'Starting Cache Generation'
    gp.GenerateMapServerCache(server_name, object_name, data_frame, out_folder, tiling_scheme_type,  scales_type, num_of_scales, dpi, tile_width, tile_height, map_or_layers, tiling_schema, tile_origin, scales, layers, thread_count, antialiasing, cache_format, tile_compression_quality)
    print 'Finished Cache Generation'
except:
    gp.AddMessage(gp.GetMessages(2))
    print gp.GetMessages(2)

环境

此工具不使用任何地理处理环境

相关主题

许可信息

ArcGIS for Desktop Basic:是
ArcGIS for Desktop Standard:是
ArcGIS for Desktop Advanced:是
9/15/2013