Map Server-Cache erstellen (Server)
Zusammenfassung
Erstellt das Kachelschema und vorbereitende Ordner für einen Karten-Service-Cache. Führen Sie nach der Ausführung dieses Werkzeugs das Werkzeug Cache-Kacheln für Kartenserver verwalten aus, um dem Cache Kacheln hinzuzufügen.
Verwendung
-
Dieses Werkzeug kann nur für ArcGIS Server-Karten-Services ausgeführt werden.
-
Es kann immer nur ein Datenrahmen gecacht werden. Wenn Sie Karten aus mehreren Datenrahmen benötigen, müssen Sie für jeden Datenrahmen separate Karten-Services und Caches erstellen.
-
Ein erstelltes Kachelschema kann nicht geändert werden. Sie können Maßstäbe jedoch mit dem Werkzeug "Cache-Maßstäbe für Kartenserver verwalten" hinzufügen oder löschen.
-
Verwenden Sie Fused-Caches, um die optimale Leistung zu erzielen. Verwenden Sie für Kacheln, die in Webanwendungen verwendet werden, immer Fused-Caches.
-
Raster-Daten sollten am besten im Bildformat JPEG oder MIXED bereitgestellt werden. Wenn Sie JPEG oder MIXED in Verbindung mit Vektorkarten verwenden, können Sie einen hohen Wert für die Komprimierungsqualität (z. B. 90) verwenden, um das Verwischen von Linien und Text zu reduzieren. Vektordaten können auch im PNG-Format bereitgestellt werden, obwohl PNG 24 für Caches vermieden werden sollte, die in Webanwendungen verwendet werden.
-
Das Dateiformat JPEG wird für Multilayer-Caches nicht unterstützt.
-
Das Bildformat des Caches kann nach dem Generieren des Caches nicht mehr geändert werden. Der Cache muss erst gelöscht werden, bevor ein anderes Format festgelegt werden kann.
-
Mithilfe der Option "Antialiasing" werden die Kanten von Linien und Text geglättet, die Darstellung von Raster-Bildern wird jedoch nur unwesentlich verbessert.
Syntax
Parameter | Erläuterung | Datentyp |
server_name |
Der ArcGIS Server-Computer, der den zu cachenden Service hostet. | String |
object_name |
Der Karten-Service, der gecacht werden soll. | String |
data_frame |
Der Karten-Datenrahmen, der gecacht werden soll. | String |
out_folder |
Das übergeordnete Verzeichnis für den Cache. Dabei muss es sich um ein registriertes ArcGIS Server-Cache-Verzeichnis handeln. | String |
tiling_scheme_type | Wählen Sie aus, ob ein neues (NEW) oder ein vordefiniertes (PREDEFINED) Kachelschema verwendet werden soll. Sie können mit diesem Werkzeug ein neues Kachelschema definieren oder auf eine Datei mit einem vordefinierten Kachelschema (.xml) zugreifen. Ein vordefiniertes Schema kann durch Ausführen des Werkzeugs "Kachelschema für Map Server-Cache erstellen" erstellt werden.
| String |
scales_type |
Geben Sie an, wie Sie die Maßstäbe für die Kacheln definieren möchten.
| String |
num_of_scales |
Die Anzahl der Maßstabsebenen, die im Cache erstellt werden sollen. Diese Option ist deaktiviert, wenn Sie eine benutzerdefinierte Liste von Maßstäben erstellen. | Long |
dpi |
Die Auflösung in DPI (Dots per Inch, Punkte pro Zoll) des betreffenden Ausgabegeräts. Bei einem DPI-Wert, der nicht mit der Auflösung des Ausgabegeräts übereinstimmt, wird der Maßstab der Kartenkachel falsch angezeigt. Der Standardwert ist 96. | Long |
tile_width |
Die Breite der Cache-Kacheln in Pixel. Die Standardeinstellung beträgt 256. Um ein optimales Gleichgewicht zwischen Performance und Verwaltbarkeit zu erzielen, sollten Sie es vermeiden, von den Standardwerten 256 bzw. 512 abzuweichen. | Long |
tile_height |
Die Höhe der Cache-Kacheln in Pixel. Die Standardeinstellung beträgt 256. Um ein optimales Gleichgewicht zwischen Performance und Verwaltbarkeit zu erzielen, sollten Sie es vermeiden, von den Standardwerten 256 bzw. 512 abzuweichen. | Long |
map_or_layers (optional) |
Wählen Sie aus, ob ein FUSED-Cache oder ein MULTI_LAYER-Cache erstellt werden soll:
| String |
tiling_schema (optional) |
Pfad zu einer vordefinierten Kachelschemadatei (normalerweise mit dem Namen "conf.xml"). | File |
tile_origin (optional) |
Der Ursprung (obere linke Ecke) des Kachelschemas in den Koordinaten des Raumbezugs des Quellkartendokuments. Die Ausdehnung des Quellkartendokuments muss innerhalb dieser Region liegen (muss jedoch nicht lagegleich sein). | Point |
levels [levels,...] (optional) |
Für den Cache verfügbare Maßstabsebenen. Diese werden nicht als Brüche dargestellt. Verwenden Sie stattdessen 500, um einen Maßstab von 1:500 darzustellen, bzw. entsprechende andere Werte. | String |
Layer [Layer,...] (optional) |
Layer, die in den Cache aufgenommen werden sollen, wenn der Cache-Typ MULTI_LAYER ausgewählt wurde. | String |
Antialiasing (optional) | Gibt an, ob beim Rendern der Kacheln Antialiasing verwendet werden soll. Bei der Auswahl von Antialiasing werden die Kanten von Linien, Rahmen und Text geglättet. Diese Option beeinträchtigt allerdings die Performance. Beim Verwenden von MXD-basierten Karten-Services (im Gegensatz zu MSD-basierten Karten-Services, für die das Antialiasing in der MSD-Datei definiert ist) ist der Rechenaufwand höher. Das Antialiasing ergibt bei Raster-Bildern keine Vorteile. Wenn die Quelle für den Karten-Service eine MSD-Datei ist und Sie Antialiasing innerhalb der MSD definiert haben, wird Antialiasing unabhängig davon im Cache angewendet, ob Sie die Option in diesem Werkzeug auswählen.
| Boolean |
cache_format (optional) |
Wählen Sie das Dateiformat PNG8, PNG24, PNG32, JPEG oder MIXED für die Kacheln im Cache aus. Die Standardeinstellung ist PNG8.
| String |
tile_compression_quality (optional) |
Geben Sie einen Wert zwischen 1 und 100 für die JPEG-Komprimierungsqualität ein. Der Standardwert für das JPEG-Kachelformat ist 75, für die anderen Formate beträgt er null. Die Komprimierung wird nur für das JPEG-Format unterstützt. Bei Auswahl eines höheren Wertes ergibt sich eine größere Datei mit höherer Bildqualität. Bei Auswahl eines niedrigeren Wertes ergibt sich eine kleinere Datei mit niedrigerer Bildqualität. | Long |
storage_format (optional) |
Geben Sie an, ob Sie die Kacheln mit dem kompakten Speicherformat (Komprimieren) zu großen Paketdateien (*.bundle) gruppieren möchten, anstatt jede Kachel mit dem Format "Erweitert" als separate Datei zu speichern. Das kompakte Speicherformat ist in Bezug auf Speicherung und Mobilität effizienter. | String |
use_local_cache_dir | Wählen Sie aus, ob Paketdateien beim Erstellen eines kompakten Caches in ein lokales Verzeichnis auf dem Server, und nicht direkt in das freigegebene Cache-Verzeichnis geschrieben werden sollen. Wenn Sie diese Option auswählen, werden die Paketdateien in das freigegebene Cache-Verzeichnis kopiert, wenn sie erstellt wurden. Diese Option verbessert die Performance, wenn mehrere Computer am Caching-Vorgang arbeiten.
| Boolean |
Codebeispiel
In diesem Beispiel wird ein Karten-Cache mit dem Maßstabstyp "Standard" erstellt.
# CreateMapServerCache example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # Requirements: os, sys, time & 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, string, datetime, traceback # Set environment settings env.workspace = "C:/data" # List of input variables for map service properties server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" 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.CreateMapServerCache_server(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) 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 schema with custom scales successfully for " + service + " 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) print "Executed creation of map server Cache schema using custom scales" report.close()
In diesem Beispiel wird ein Karten-Cache mit benutzerdefinierten Maßstäben (custom) erstellt.
# CreateMapServerCache example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # Requirements: os, sys, time & 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, string, datetime, traceback # Set environment settings env.workspace = "C:/data" # List of input variables for map service properties server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" 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.CreateMapServerCache_server(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) 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 schema with custom scales successfully for " + service + " 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) print "Executed creation of map server Cache schema using custom scales" report.close()
In diesem Beispiel wird ein Karten-Cache mithilfe eines vordefinierten Kachelschemas erstellt.
# CreateMapServerCache example (stand-alone script) # Name: CreateMapServerCache.py # Description: The following stand-alone script demonstrates how to create map # using Custom scales & jpg image format with Antialiasing feature turned on # Requirements: os, sys, time & 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, string, datetime, traceback # Set environment settings env.workspace = "C:/data" # List of input variables for map service properties server = "MyServer" service = "Rainfall" dataFrame = "" cacheDir = "C:\\arcgisserver\\arcgiscache\\" tilingScheme = "NEW" scalesType = "CUSTOM" extents = "" tileOrigin = "" scales = "4" dpi = "96" scaleValues = "600265;350200;225400;44000" tileWidth = "256" tileHeight = "256" cacheType = "FUSED" inputLayers = "" pathToXML = "" antialiasing = "ANTIALIASING" tileFormat = "JPEG" tileCompressionQuality = "75" storageFormat = "Compact" useLocalCacheDir = "True" 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.CreateMapServerCache_server(server, service, dataFrame, cacheDir, tilingScheme, scalesType, scales, dpi, tileWidth, tileHeight, cacheType, pathToXml, tileOrigin, scaleValues, inputLayers, antialiasing, tileFormat, tileCompressionQuality, storageFormat, useLocalCacheDir) 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 schema with custom scales successfully for " + service + " 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) print "Executed creation of map server Cache schema using custom scales" report.close()