Zusammenfassung
Erstellt das Kachelschema und die vorbereitenden Ordner für einen Karten- oder Image-Service-Cache. Verwenden Sie nach der Ausführung dieses Werkzeugs das Werkzeug Cache-Kacheln für Kartenserver verwalten, um dem Cache Kacheln hinzuzufügen.
Verwendung
Dieses Werkzeug kann nur für ArcGIS Server-Karten- oder -Image-Services verwendet werden.
Dieses Werkzeug kann nur mit Karten- und Bild-Layern in ArcGIS Enterprise sowie Karten- und Image-Services in ArcGIS Server verwendet werden.
Raster-Daten lassen sich am besten im Bildformat JPEG oder MIXED veröffentlichen. Wenn Sie das JPEG- oder MIXED-Format 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 veröffentlicht werden.
Das Bildformat des Cache kann nach dem Generieren des Cache nicht mehr geändert werden. Der Cache muss erst gelöscht werden, bevor ein anderes Format festgelegt werden kann.
Syntax
arcpy.server.CreateMapServerCache(input_service, service_cache_directory, tiling_scheme_type, scales_type, num_of_scales, dots_per_inch, tile_size, {predefined_tiling_scheme}, {tile_origin}, {scales}, {cache_tile_format}, {tile_compression_quality}, {storage_format})
Parameter | Erklärung | Datentyp |
input_service | Der Karten- oder Bild-Layer, der gecacht werden soll. | Image Service; MapServer |
service_cache_directory | Das übergeordnete Verzeichnis für den Cache. Dabei muss es sich um ein registriertes ArcGIS Server-Cache-Verzeichnis handeln. | String |
tiling_scheme_type | Gibt an, wie das Kachelschema definiert wird. 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 Kartenserver-Cache erstellen erstellt werden.
| String |
scales_type | Gibt an, wie Kacheln skaliert werden.
| 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 |
dots_per_inch | 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_size | Gibt die Breite und Höhe der Cache-Kacheln in Pixel an. Um ein optimales Gleichgewicht zwischen Performance und Verwaltbarkeit zu erzielen, sollten Sie es vermeiden, von den Standardwerten 256 x 256 oder 512 x 512 abzuweichen.
| String |
predefined_tiling_scheme (optional) | Der 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 |
scales [scales,...] (optional) | Die für den Cache verfügbaren Maßstabsebenen. Diese werden nicht als Brüche dargestellt. Verwenden Sie stattdessen 500, um beispielsweise einen Maßstab von 1:500 darzustellen. | Value Table |
cache_tile_format (optional) | Gibt das Cache-Kachelformat an.
| String |
tile_compression_quality (optional) | Die JPEG-Komprimierungsqualität (1-100). Der Standardwert für das JPEG-Kachelformat ist 75, für die anderen Formate beträgt er 0. 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) | Gibt das Speicherformat von Kacheln an.
| String |
Abgeleitete Ausgabe
Name | Erklärung | Datentyp |
out_service_url | Die Kartenservice-URL der Ausgabe. | Zeichenfolge |
Codebeispiel
Im folgenden Beispiel werden das Kachelschema und die vorbereitenden Ordner für einen Kartenservice-Cache mit dem Maßstabstyp "STANDARD" erstellt. Führen Sie nach der Ausführung dieses Skripts das Werkzeug Cache-Kacheln für Kartenserver verwalten aus, um dem Cache Kacheln hinzuzufügen.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using standard tiling schema
# 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, 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
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache\\"
tilingSchemeType = "NEW"
scalesType = "STANDARD"
numOfScales = "4"
scales = ""
dotsPerInch = "96"
tileOrigin = ""
scales = ""
tileSize = "256 x 256"
cacheTileFormat = "PNG32"
tileCompressionQuality = ""
storageFormat = "COMPACT"
predefinedTilingScheme = ""
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(inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 4 scales & default properties for" + \
serviceName + " in " + str(elapsedtime) + " sec \n on " + arg2)
except Exception as 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(str(e))
print("Executed creation of Map server Cache schema ")
report.close()
Im folgenden Beispiel werden das Kachelschema und die vorbereitenden Ordner für einen Kartenservice-Cache mit benutzerdefinierten Maßstäben (CUSTOM) erstellt. Führen Sie nach der Ausführung dieses Skripts das Werkzeug Cache-Kacheln für Kartenserver verwalten aus, um dem Cache Kacheln hinzuzufügen.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using Custom scales & jpg image format.
# 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
connectionFile = r"C:\Users\<username>\AppData\Roaming\ESRI\Desktop10.1\ArcCatalog"
server = "arcgis on MyServer_6080 (publisher)"
serviceName = "Rainfall.MapServer"
inputService = connectionFile + "\\" + server + "\\" + serviceName
serviceCacheDirectory = "C:\\arcgisserver\\arcgiscache"
tilingSchemeType = "NEW"
scalesType = "CUSTOM"
numOfScales = "4"
dotsPerInch = "96"
tileSize = "256 x 256"
predefinedTilingScheme = ""
tileOrigin = ""
scales = "600265;350200;225400;44000"
cacheTileFormat = "JPEG"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
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(inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 " + \
serviceName + " in " + str(elapsedtime) + " sec \n on " + arg2)
except Exception as 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(str(e))
print("Executed creation of map server Cache schema using custom scales")
report.close()
Im folgenden Beispiel werden das Kachelschema und die vorbereitenden Ordner für einen Kartenservice-Cache mit einem vordefinierten (PREDEFINED) Kachelschema erstellt. Führen Sie nach der Ausführung dieses Skripts das Werkzeug Cache-Kacheln für Kartenserver verwalten aus, um dem Cache Kacheln hinzuzufügen.
# Name: CreateMapServerCache.py
# Description: The following stand-alone script demonstrates how to create map
# using existing predefined schema
# 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, 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
serviceCacheDirectory = "C:\\arcgisserver\\directories\\arcgiscache"
tilingSchemeType = "PREDEFINED"
scalesType = ""
tileOrigin = ""
scalesType = ""
numOfScales = ""
scales = ""
dotsPerInch = "96"
tileSize = "256 x 256"
cacheTileFormat = "MIXED"
tileCompressionQuality = "75"
storageFormat = "COMPACT"
predefinedTilingScheme = "C:/data/TilingSchemes/ArcGIS_Online_Bing_Maps_Google_Maps.xml"
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 (inputService,
serviceCacheDirectory,
tilingSchemeType, scalesType,
numOfScales, dotsPerInch,
tileSize, predefinedTilingScheme,
tileOrigin, scales,
cacheTileFormat,
tileCompressionQuality,
storageFormat)
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 using predefined tiling schema for " + \
serviceName + " in " + str(elapsedtime) + " sec \n on " + arg2)
except Exception as 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(str(e))
print("Executed creation of map server Cache schema using tiling scheme")
report.close()
Umgebungen
Lizenzinformationen
- Basic: Ja
- Standard: Ja
- Advanced: Ja