Kartenserver-Cache erstellen (Server)

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

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})
ParameterErklärungDatentyp
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.

  • NEWDas Kachelschema wird mit anderen Parametern in diesem Werkzeug definiert, um Maßstabsebenen, das Bildformat, das Speicherformat usw. anzugeben. Dies ist die Standardeinstellung.
  • PREDEFINEDDas Kachelschema wird mit einer .xml-Datei definiert. Sie können eine Kachelschemadatei mithilfe des Werkzeugs Kachelschema für Kartenserver-Cache erstellen erstellen.
String
scales_type

Gibt an, wie Kacheln skaliert werden.

  • STANDARDDie Maßstäbe werden automatisch basierend auf der im Parameter Anzahl der Maßstabsebenen (num_of_scales in Python) angegebenen Zahl generiert. Es werden Ebenen verwendet, die ab 1:1.000.000 um die Hälfte erhöht oder verringert werden. Es wird mit einer Ebene begonnen, die der Ausdehnung des Quellkartendokuments am nächsten ist. Wenn das Quellkartendokument beispielsweise eine Ausdehnung von 1:121.000.000 aufweist und drei Maßstabsebenen festgelegt sind, erstellt der Kartenservice einen Cache mit den folgenden Maßstabsebenen: 1:128.000.000, 1:64.000.000 und 1:32.000.000. Dies ist die Standardeinstellung.
  • CUSTOMDie Maßstäbe werden vom Cache-Designer festgelegt.
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.

  • 128 x 128128 x 128 Pixel
  • 256 x 256256 x 256 Pixel Dies ist die Standardeinstellung.
  • 512 x 512512 x 512 Pixel
  • 1024 x 10241024 x 1024 Pixel
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.

  • PNGEin PNG-Format mit verschiedenen Bit-Tiefen. Die Bit-Tiefen werden gemäß der Farbabweichungs- und Transparenzwerte in einer Kachel optimiert. Dies ist die Standardeinstellung.
  • PNG8Ein verlustfreies 8-Bit-Farb-Bildformat, das eine indizierte Farbpalette und eine Alpha-Tabelle verwendet. In jedem Pixel wird ein Wert (0-255) gespeichert, mit dem die Farbe in der Farbpalette und die Transparenz in der Alpha-Tabelle bestimmt wird. 8-Bit-PNG-Bilder ähneln GIF-Bildern, und der transparente Hintergrund in PNG-Bildern wird von den meisten Webbrowsern unterstützt.
  • PNG24Ein verlustfreies Dreikanal-Bildformat, das zwar umfassende Farbvariationen (16 Millionen Farben), Transparenz jedoch nur eingeschränkt unterstützt. Jeder Pixel enthält drei 8-Bit-Farbkanäle, und der Datei-Header enthält die Einzelfarbe, die den transparenten Hintergrund darstellt. Versionen von Internet Explorer vor 7 unterstützen diese Art der Transparenz nicht. Caches, die PNG24 verwenden, sind wesentlich größer als Caches, für die PNG8 oder JPEG ausgewählt wurde, und sie beanspruchen mehr Speicherplatz und Bandbreite für Clients.
  • PNG32Ein verlustfreies Vierkanal-Bildformat, das umfassende Farbvariationen (16 Millionen Farben) und Transparenz unterstützt. Jeder Pixel enthält drei 8-Bit-Farbkanäle und einen 8-Bit-Alpha-Kanal, der die Transparenzstufe für die einzelnen Pixel darstellt. Während das Format PNG32 teilweise transparente Pixel im Bereich von 0 bis 255 zulässt, schreibt das ArcGIS Server-Werkzeug für die Cache-Generierung nur vollständig transparente (0) oder vollständig undurchsichtige (255) Werte in den Transparenzkanal. Caches, die PNG32 verwenden, sind wesentlich größer als die anderen unterstützten Formate, und sie beanspruchen mehr Speicherplatz und Bandbreite für Clients.
  • JPEGEin Dreikanal-Bildformat mit Qualitätsverlust, das umfassende Farbvariationen (16 Millionen Farben), jedoch keine Transparenz unterstützt. Jeder Pixel enthält drei 8-Bit-Farbkanäle. Caches, die das JPEG-Format verwenden, ermöglichen die Steuerung der Ausgabequalität und -größe.
  • MIXEDDas Format PNG32 wird an allen Orten erstellt, an denen Transparenz erkannt wird (d. h. an allen Orten, an denen der Hintergrund des Datenrahmens sichtbar ist). Für die verbleibenden Kacheln wird das JPEG-Format erstellt. Dadurch wird die durchschnittliche Dateigröße klein gehalten, während gleichzeitig ein sauberes Overlay über andere Caches bereitgestellt werden kann.
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.

  • COMPACTKacheln werden in große Dateien gruppiert, die als Pakete bezeichnet werden. Dieses Speicherformat ist im Hinblick auf Speicherung und Mobilität effizient. Dies ist die Standardeinstellung.
  • EXPLODEDJede Kachel wird als separate Datei gespeichert.
String

Abgeleitete Ausgabe

NameErklärungDatentyp
out_service_url

Die Kartenservice-URL der Ausgabe.

Zeichenfolge

Codebeispiel

CreateMapServerCache – Beispiel 1 (eigenständiges Skript)

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()
CreateMapServerCache – Beispiel 2 (eigenständiges Skript)

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()
CreateMapServerCache – Beispiel 3 (eigenständiges Skript)

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

Dieses Werkzeug verwendet keine Geoverarbeitungsumgebungen.

Lizenzinformationen

  • Basic: Ja
  • Standard: Ja
  • Advanced: Ja

Verwandte Themen