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

摘要

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

使用情况

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

参数

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

要更新缓存切片的 Web 切片图层、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 Indicator - 可见要素的范围。

  • 浏览 浏览 - 范围将基于数据集。
  • 剪贴板 粘贴 - 可在剪贴板中复制和粘贴范围。
    • 复制范围 复制 - 将范围和坐标系复制到剪贴板。
    • 粘贴范围 粘贴 - 从剪贴板粘贴范围和坐标系。 如果剪贴板不包含坐标系,则范围将使用地图的坐标系。
  • 重置范围 重置 - 将范围重置为默认值。

当手动提供坐标时,坐标必须为数值,并且位于活动地图的坐标系中。 地图可能使用与提供的坐标不同的显示单位。 在南纬和西经坐标中使用负号。

Extent
等待作业完成
(可选)

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

  • 选中 - 缓存作业在 ArcGIS OnlinePortal for ArcGIS 中运行时,工具继续运行。 使用此选项,您可以随时请求详细的进度报告并查看显示的地理处理消息。 这是默认设置。
  • 未选中 - 工具会将作业提交至门户,允许您在 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 切片图层、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缓存作业在 ArcGIS OnlinePortal for ArcGIS 中运行时,工具继续运行。 使用此选项,您可以随时请求详细的进度报告并查看显示的地理处理消息。 这是默认设置。 建议在 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
from arcpy import env
import os, sys, time, datetime, traceback, string
import traceback, sys

# Set environment settings
env.workspace = "C:/data"

# Sign in to ArcGIS Enterprise
myPortal= "https://MyPortal.domain.com/portalwebadaptor"
arcpy.SignInToPortal(myPortal, "siteadminValue", "siteadminPassword")
myServer="https://Myserver.domain.com/serverwebadaptor"
serviceName= "SampleWorldCities"
serviceType= "MapServer"
myPortalServiceURL = (myServer + "/" + "rest/services" +"/" + serviceName + "/"
                      + serviceType)

### Sign in to ArcGIS Online
##myPortal= "https://www.arcgis.com"
##arcpy.SignInToPortal(myPortal, "MyUserName", "MyPassword")
##serviceRestUrl="https://www.arcgis.com/tiles/orgid"
##serviceName= "MyServiceName"
##serviceType= "MapServer"
##myPortalServiceURL = (serviceRestUrl + "/" + "arcgis/rest/services" +"/" + serviceName + "/"
##                      + serviceType)


# Stand alone ArcGIS Server
##target_server_connection = r"C:\share\python3\arcgis on MyServer.ags"
##serviceName= "MyServiceName"
##serviceType= ".MapServer"
##myPortalServiceURL = (target_server_connection +  "\\" + serviceName + serviceType)

print (myPortalServiceURL)

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


# List of input variables for map or image service 
##scales = [591657527.591555,295828763.79577702,147914381.89788899]
scales = [73957190.948944,36978595.474472]
numOfCachingServiceInstances = 8
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""
portalURL =""


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

try:
    result = arcpy.server.ManageMapServerCacheTiles(myPortalServiceURL, 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(str(e))
report.close()

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

许可信息

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

相关主题