Zusammenfassung
Erstellt und aktualisiert in einem vorhandenen Web-Kachel-Layer-Cache (in ArcGIS Enterprise oder ArcGIS Online), in Webkartenbild-Layern in ArcGIS Enterprise und in gecachten Karten- oder Image-Services auf einem eigenständigen Server Kacheln. Dieses Werkzeug wird verwendet, um neue Kacheln zu erstellen, fehlende Kacheln zu ersetzen, veraltete Kacheln zu überschreiben und Kacheln zu löschen.
Verwendung
Die Ausführung dieses Werkzeugs kann für Caches, die eine große geographische Ausdehnung oder sehr große Kartenmaßstäbe abdecken, ggf. einen langen Zeitraum in Anspruch nehmen. Wenn das Werkzeug abgebrochen wird, wird die Kachelerstellung beendet, aber die vorhandenen Kacheln werden nicht gelöscht. Dies bedeutet, dass Sie das Werkzeug aus Zeitgründen abbrechen können. Später können Sie es dann für denselben Cache erneut ausführen, indem Sie den Parameter Aktualisierungsmodus auf Fehlende Kacheln erstellen (update_mode = "RECREATE_EMPTY_TILES" in Python) festlegen.
Syntax
arcpy.server.ManageMapServerCacheTiles(input_service, scales, update_mode, {num_of_caching_service_instances}, {area_of_interest}, {update_extent}, {wait_for_job_completion})
Parameter | Erklärung | Datentyp |
input_service | Der Web-Kachel- oder Kartenbild-Layer, dessen Cache-Kacheln Sie aktualisieren möchten. | Image Service; MapServer |
scales [scales,...] | Die Maßstabsebenen, auf denen Sie beim Ausführen dieses Werkzeugs je nach update_mode Kacheln erstellen oder löschen. | Double |
update_mode | Der Modus für die Aktualisierung des Cache.
| String |
num_of_caching_service_instances (optional) | Die Gesamtzahl der Instanzen des Service System/CachingTools, die zum Ausführen dieses Werkzeugs reserviert sind. Sie können die Einstellung Maximale Anzahl von Instanzen pro Computer des Service System/CachingTools mithilfe des Fensters Service-Editor erhöhen, das über eine administrative Verbindung zu ArcGIS Server verfügbar ist. Stellen Sie sicher, dass die Servercomputer die ausgewählte Anzahl von Instanzen unterstützen können. Bei einer Verbindung mit einem eigenständigen Server entspricht die standardmäßige Anzahl an Instanzen dem Wert der Einstellung Maximale Anzahl der Instanzen im Caching-Werkzeug-Service. | Long |
area_of_interest (optional) | Definiert einen Interessenbereich, um einzuschränken, wo Kacheln erstellt oder gelöscht werden. Dieser Parameter ist hilfreich, wenn Sie Kacheln für unregelmäßig geformte Bereiche verwalten möchten. Er ist außerdem in Situationen hilfreich, in denen Sie einige Bereiche im Voraus cachen und weniger frequentierte Bereiche ungecacht lassen möchten. Wenn Sie keinen Wert für diesen Parameter angeben, wird standardmäßig die volle Ausdehnung der Karte verwendet. | Feature Set |
update_extent (optional) | Rechteckige Ausdehnung, bei der Kacheln je nach Wert des Parameters update_mode erstellt oder gelöscht werden. Sie sollten nicht für beide Parameter update_extent und area_of_interest gleichzeitig Werte angeben. Wenn für beide Parameter Werte angegeben werden, wird der Wert für area_of_interest verwendet. | Extent |
wait_for_job_completion (optional) | Mit diesem Parameter können Sie den Fortschritt des Cache-Auftrags überwachen, der im Portal ausgeführt wird.
| Boolean |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_job_url | Die Ausgabe-URL. | String |
Codebeispiel
ManageMapServerCacheTiles – Beispiel 1 (eigenständiges Skript)
Erstellen oder Aktualisieren aller Kacheln im Cache mithilfe der Option RECREATE_ALL_TILES
# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all
# cache tiles for the scales in the cache tiling scheme.
# Requirements: os, sys, time and 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
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""
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:
starttime = time.clock()
result = arcpy.ManageMapServerCacheTiles_server(inputService, scales,
updateMode,
numOfCachingServiceInstances,
areaOfInterest, updateExtents,
waitForJobCompletion)
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 cache tiles for given schema successfully for " +\
serviceName + " in " + str(elapsedtime) + " sec 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)
report.close()
print "Created Map server Cache Tiles "
ManageMapServerCacheTiles – Beispiel 2 (eigenständiges Skript)
Aktualisieren leerer Kacheln für einige Maßstäbe mithilfe der Option RECREATE_EMPTY_TILES
# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate
# empty tiles for one of the default number of scales in the cache
# tiling scheme
# Requirements: os, sys, time and 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
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_EMPTY_TILES"
areaOfInterest = ""
waitForJobCompletion = "WAIT"
updateExtents = ""
cacheDir = "c:\\arcgisserver\\arcgiscache\\"
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')
# use "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
updateMode, numOfCachingServiceInstances,
areaOfInterest, updateExtents,
waitForJobCompletion)
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 cache tiles for scale =" + str(scales[-1]) + "for " +\
serviceName + " at " + cacheDir + " in " + str(elapsedtime) +\
" sec 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)
report.close()
print "Rereated Map server Cache Tiles for scale = " + str(scaleValues[-1])
ManageMapServerCacheTiles – Beispiel 3 (eigenständiges Skript)
Aktualisieren von Kacheln mithilfe eines Interessenbereichs
# Name: ManageMapServerCacheTiles.py
# Description: The following stand-alone script demonstrates how to Recreate all
# tiles using given feature class.
# Requirements: os, sys, time and 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
import os
import sys
import time
import datetime
import traceback
import string
# Set environment settings
arcpy.env.workspace = "C:/data"
# List of input variables for map service properties
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
scales = [500000,250000,125000,64000]
numOfCachingServiceInstances = 2
updateMode = "RECREATE_ALL_TILES"
areaOfInterest = "C:/data/shp/CaTxFlMaMin.shp"
waitForJobCompletion = "WAIT"
updateExtents = ""
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')
# use "scales[0]","scales[-1]","scales[0:3]"
try:
starttime = time.clock()
result = arcpy.ManageMapServerCacheTiles_server(inputService, scales[-1],
updateMode,
numOfCachingServiceInstances,
areaOfInterest, updateExtents,
waitForJobCompletion)
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 cache tiles for scale =" + str(scales[-1]) + "for " +\
serviceName + "at " + cacheDir + " using specified feature class " +\
areaOfInterest + " in " + str(elapsedtime) + " sec on " + arg2
except Exception, e:
# If an error occurred, print line number and error message
tb = sys.exc_info()[2]
report.write("Failed at \n" "Line %i" % tb.tb_lineno)
report.write(e.message)
report.close()
print "Rereated Map server Cache Tiles"
print "for scale = " + str(scaleValues[-1]) + " using area of Interest"
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja