Cache-Kacheln für Kartenserver verwalten (Server)

Lizenzstufe:BasicStandardAdvanced

Zusammenfassung

Erstellt und aktualisiert Kacheln eines bestehenden Karten- oder Image-Service-Cache. Dieses Werkzeug wird verwendet, um neue Kacheln zu erstellen, fehlende Kacheln zu ersetzen, veraltete Kacheln zu überschreiben und neue Kacheln hinzuzufügen.

Verwendung

Syntax

ManageMapServerCacheTiles_server (input_service, scales, update_mode, {num_of_caching_service_instances}, {area_of_interest}, {update_extent}, {wait_for_job_completion})
ParameterErläuterungDatentyp
input_service

Der Karten- oder Image-Service, dessen Cache-Kacheln Sie aktualisieren möchten.

Dies ist eine Zeichenfolge, die sowohl die Server- als auch die Service-Informationen enthält. Um zu erfahren, wie diese Zeichenfolge erstellt wird, öffnen Sie ArcCatalog, wählen Sie Ihren Service im Kataloginhaltsverzeichnis aus, und beachten Sie den Text in der Werkzeugleiste Verzeichnis. Ändern Sie dann die umgekehrten Schrägstriche in Schrägstriche, z. B. GIS Servers/arcgis on MYSERVER (admin)/USA.MapServer.

String
scales

Die Maßstabsebenen, auf denen Sie beim Ausführen dieses Werkzeugs je nach Aktualisierungsmodus Kacheln erstellen oder löschen.

Double
update_mode

Der Modus für die Aktualisierung des Caches.

  • RECREATE_EMPTY_TILESEs werden nur Kacheln erstellt, die leer sind. Vorhandene Kacheln werden unverändert beibehalten.
  • RECREATE_ALL_TILESVorhandene Kacheln werden ersetzt, und neue Kacheln werden hinzugefügt, wenn die Ausdehnung geändert wurde.
  • DELETE_TILESKacheln werden aus dem Cache gelöscht. Die Cache-Ordnerstruktur wird nicht gelöscht. Wenn Sie den gesamten Cache einschließlich der Ordnerstruktur löschen möchten, verwenden Sie das Werkzeug Kartenserver-Cache löschen.
String
num_of_caching_service_instances
(optional)

Die Gesamtzahl der Instanzen des Service "System/CachingTools", die Sie zum Ausführen dieses Werkzeugs reservieren möchten. Sie können die 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.

Long
area_of_interest
(optional)

Definiert einen Interessenbereich, um einzuschränken, wo Kacheln erstellt oder gelöscht werden. Dabei kann es sich um eine Feature-Class oder um ein Feature handeln, die bzw. das sie interaktiv in ArcMap definieren. 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 keine Werte für beide Parameter update_extent und area_of_interest angeben. Wenn Werte für beide Parameter angegeben werden, wird der Wert für area_of_interest verwendet.

Extent
wait_for_job_completion
(optional)

Dieser Parameter ermöglicht Ihnen das Überwachen des Fortschritts des Cache-Auftrags, der auf dem Server ausgeführt wird.

  • WAITDieses Werkzeug wird weiterhin in ArcGIS for Desktop ausgeführt, während der Cache-Auftrag auf ArcGIS for Server oder ArcGIS Online ausgeführt wird. Mit dieser Option können Sie jederzeit detaillierte Fortschrittsberichte anfordern und die Geoverarbeitungs-Meldungen anzeigen, wenn sie auftreten. Dies ist die Standardoption. Diese Option sollten Sie in Python-Skripts verwenden.
  • DO_NOT_WAITDas Geoverarbeitungswerkzeug sendet den Auftrag an den Server, sodass Sie andere Geoverarbeitungs-Tasks in ArcGIS for Desktop ausführen oder sogar ArcGIS for Desktop schließen können. Diese Option wird verwendet, wenn Sie einen Cache automatisch beim Veröffentlichen des Service erstellen möchten. Sie können diese Option auch für jeden anderen Cache, den Sie erstellen, festlegen. Um den Status des Cache-Auftrags zu überwachen, öffnen Sie ArcGIS for Desktop, klicken Sie mit der rechten Maustaste im Fenster Katalog auf den Service, und klicken Sie dann auf Cache-Status anzeigen. Sie können auch die URL verwenden, die in der Ergebnismeldung des Werkzeugs bereitgestellt wird.Diese Option ist nicht verfügbar, wenn die File-Geodatabase Status.gdb nicht im Cache-Verzeichnis des Service vorhanden ist.
Boolean

Codebeispiel

Beispiel 1

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 = r'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 \n 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 "

Beispiel 2

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 + "\n   at " + cacheDir + " in " + str(elapsedtime)
    " sec \n 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])

Beispiel 3

Aktualisieren von Kacheln mithilfe eines Interessenbereichs

# ManageMapServerCacheTiles example for ArcGIS Server 10.1(stand-alone script)

# 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
# Author: ESRI

# 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 = "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 = r'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 + "\n using specified feature class "
    areaOfInterest + " in " + str(elapsedtime) + " sec \n 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"

Umgebung

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Verwandte Themen

Lizenzierungsinformationen

ArcGIS for Desktop Basic: Ja
ArcGIS for Desktop Standard: Ja
ArcGIS for Desktop Advanced: Ja
5/10/2014