管理地图服务器缓存切片 (服务器)

摘要

在现有 Web 切片图层缓存(在 ArcGIS EnterpriseArcGIS Online 中)、ArcGIS Enterprise 中的 Web 地图影像图层和独立服务器中的缓存地图或影像服务中创建和更新切片。 此工具用于创建新切片、恢复缺失切片、覆盖过时切片以及删除切片。

使用情况

  • 对于涉及较大地理范围或较大地图比例的缓存,此工具可能会需要较长的运行时间。 如果取消此工具,将停止切片创建,但不删除现有切片。 这意味着,如果您的时间不足,可以先取消工具,随后再通过将更新模式参数设置为重新创建空切片Python 中为 update_mode = "RECREATE_EMPTY_TILES"),来在同一缓存上重新运行该工具。

参数

标注说明数据类型
输入服务

要更新缓存切片的 Web 切片图层、影像图层或地图影像图层。

Image Service; Map Server
比例

创建切片时使用的比例级别列表。

默认情况下,工具对话框中所列出的比例介于该服务的最小和最大缓存比例之间。 在 ArcGIS Pro 中,无法更改服务的缓存比例范围。

Double
更新模式

指定将用于更新缓存的模式。

  • 重新创建空切片只对空的切片重新创建。 现有切片将保持不变。 此选项不适用于发布至 ArcGIS Online 的 web 切片图层。
  • 重新创建所有切片如果范围发生改变,则需要更换现有切片并添加新切片。
  • 删除切片将从缓存中删除切片。 缓存文件夹结构不会删除。
String
缓存服务实例数
(可选)

专用于运行该工具的 System/CachingTools 服务实例的总数。 将使用默认值 -1,即使用 ArcGIS Enterprise 设置的所有缓存工具实例。 使用较小的值可以使用较少的缓存工具实例。

您可以使用服务编辑器窗口增加 System/CachingTools 服务的每台计算机的最大实例数设置,该窗口可通过 ArcGIS Server 的管理连接访问。 确保服务器计算机可以支持所选数量的实例。

连接到独立服务器时,默认实例数等于缓存工具服务的最大实例数设置的值。

Long
感兴趣区域
(可选)

包含创建或删除切片的位置的感兴趣区域。 该参数用于管理形状不规则的区域的切片。 对某些区域进行预缓存或让较少访问的区域保持未缓存的状态时,此参数也同样有用。

若未提供该参数的值,则会默认使用地图的全图范围。

Feature Set
更新范围
(可选)

用于创建或删除切片的矩形范围,具体取决于更新模式参数的值。 如果已指定更新范围感兴趣区域参数值,则将使用感兴趣区域值。

  • 默认 - 该范围将基于所有参与输入的最大范围设定。这是默认设置。
  • 当前显示范围 - 该范围与数据框或可见显示范围相等。如果没有活动地图,则该选项将不可用。
  • 如下面的指定 - 该范围将基于指定的最小和最大范围值。
  • 浏览 - 该范围将基于现有数据集。
Extent
等待作业完成
(可选)

指定当缓存作业在 ArcGIS OnlinePortal for ArcGIS 中运行时,工具是否继续运行。

  • 选中 - 缓存作业在 Portal for ArcGISArcGIS Online 中运行时,工具继续运行。 使用此选项,您可以随时请求详细的进度报告并查看显示的地理处理消息。 这是默认设置。
  • 未选中 - 工具会将作业提交至门户,允许您在 ArcGIS Pro 中执行其他地理处理任务或将其关闭。 在发布服务之际自动构建缓存时,请使用此选项。 还可以在您所构建的任何其他缓存中设置此选项。
Boolean
门户 URL
(可选)

门户的 URL。

String

派生输出

标注说明数据类型
输出地图服务 URL

输出 URL。

String

arcpy.server.ManageMapServerCacheTiles(input_service, scales, update_mode, {num_of_caching_service_instances}, {area_of_interest}, {update_extent}, {wait_for_job_completion}, {portal_url})
名称说明数据类型
input_service

要更新缓存切片的 Web 切片图层、影像图层或地图影像图层。

Image Service; Map Server
scales
[scales,...]

创建切片时使用的比例级别列表。

Double
update_mode

指定将用于更新缓存的模式。

  • RECREATE_EMPTY_TILES只对空的切片重新创建。 现有切片将保持不变。 此选项不适用于发布至 ArcGIS Online 的 web 切片图层。
  • RECREATE_ALL_TILES如果范围发生改变,则需要更换现有切片并添加新切片。
  • DELETE_TILES将从缓存中删除切片。 缓存文件夹结构不会删除。
String
num_of_caching_service_instances
(可选)

专用于运行该工具的 System/CachingTools 服务实例的总数。 将使用默认值 -1,即使用 ArcGIS Enterprise 设置的所有缓存工具实例。 使用较小的值可以使用较少的缓存工具实例。

您可以使用服务编辑器窗口增加 System/CachingTools 服务的每台计算机的最大实例数设置,该窗口可通过 ArcGIS Server 的管理连接访问。 确保服务器计算机可以支持所选数量的实例。

连接到独立服务器时,默认实例数等于缓存工具服务的最大实例数设置的值。

Long
area_of_interest
(可选)

包含创建或删除切片的位置的感兴趣区域。 该参数用于管理形状不规则的区域的切片。 对某些区域进行预缓存或让较少访问的区域保持未缓存的状态时,此参数也同样有用。

若未提供该参数的值,则会默认使用地图的全图范围。

Feature Set
update_extent
(可选)

用于创建或删除切片的矩形范围,取决于 update_mode 参数的值。 如果已指定 update_extentarea_of_interest 参数值,则将使用 area_of_interest 值。

  • MAXOF - 将使用所有输入的最大范围。
  • MINOF - 将使用所有输入共有的最小区域。
  • DISPLAY - 该范围与可见显示范围相等。
  • 图层名称 - 将使用指定图层的范围。
  • Extent 对象 - 将使用指定对象的范围。
  • 以空格分隔的坐标字符串 - 将使用指定字符串的范围。坐标以 x-min,y-min,x-max,y-max 的顺序表示。
Extent
wait_for_job_completion
(可选)

指定当缓存作业在 ArcGIS OnlinePortal for ArcGIS 中运行时,工具是否继续运行。

  • WAIT缓存作业在 Portal for ArcGISArcGIS Online 中运行时,工具继续运行。 使用此选项,您可以随时请求详细的进度报告并查看显示的地理处理消息。 这是默认设置。 建议在 Python 脚本中使用此选项。
  • DO_NOT_WAIT工具会将作业提交至服务器,允许您执行其他地理处理任务。 在发布服务之际自动构建缓存时,请使用此选项。 还可以在您所构建的任何其他缓存中设置此选项。
Boolean
portal_url
(可选)

门户的 URL。

String

派生输出

名称说明数据类型
out_job_url

输出 URL。

String

代码示例

ManageMapServerCacheTiles 示例(独立脚本)

以下脚本演示如何使用感兴趣的区域为地图或影像服务重新创建所有缓存切片。

# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all 
#               cache tiles for for a map or image service using an area of interest.
#               This tool works for weblayers published to ArcGIS Enterprise and ArcGIS Online.
#               and for map and image services on a stand alone ArcGIS Server

# Example: This sample script updates map cache tiles.

import arcpy
import os

# Sign in to portal
myPortal= "https://www.myArcGISEnterprise.com/webadaptor"
arcpy.SignInToPortal(myPortal, "MyUserName", "MyPassword")
serviceName= "MyCounty"
serviceType= "MapServer"
myPortalServiceURL = (myPortal + "/" + "rest/services" +"/" + serviceName + "/" + serviceType)


# Stand alone ArcGIS Server
target_server_connection = r"C:\Project\gisserver.ags.esri.com (publisher).ags"
serviceName= "MyCounty"
serviceType= "MapServer"
myServerServiceURL= target_server_connection + "/" + serviceName + "." + serviceType


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


# List of input variables for map or image service 
scales = [500000,250000]
numOfCachingServiceInstances = 8
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = "C:/data/shp/CaTxFlMaMin.shp"
waitForJobCompletion = "WAIT"
updateExtents = ""
portalURL =""

# Variables for reporting
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:
    result = arcpy.server.ManageMapServerCacheTiles(mytest, scales, updateMode,
                                                    numOfCachingServiceInstances, areaOfInterest,
                                                    updateExtents, waitForJobCompletion,
                                                    portalURL)
    while result.status < 4:
        time.sleep(0.2)
    resultValue = result.getMessages()
    report.write ("completed " + str(resultValue))

    print ("Created cache tiles for given schema successfully for " + serviceName )
    
except Exception as e:
    # If an error occurred, print line number and error message
    import traceback, sys
    tb = sys.exc_info()[2]
    report.write("Failed at step 1 \n" "Line %i" % tb.tb_lineno)
    report.write(e.message)
report.close()

print ("Completed update of cache tiles for " + serviceName)

环境

特殊情况

许可信息

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

相关主题