Cache für Kartenserver erstellen (Server)
Zusammenfassung
Hiermit wird ein Cache von statischen Bildkacheln für einen ArcGIS Server-Karten-Service generiert.
Dies ist ein veraltetes Werkzeug. Der neue Workflow besteht darin, das Werkzeug "Map Server-Cache erstellen" zum Initialisieren des Caches zu verwenden, gefolgt von "Cache-Kacheln für Kartenserver verwalten" zum Hinzufügen von Kacheln zum Cache.
Verwendung
-
Dieses Werkzeug kann nur für ArcGIS Server-MapServices ausgeführt werden.
-
Konfigurieren Sie vor dem Ausführen dieses Werkzeugs den MapService so, dass er so viele Instanzen wie möglich verwendet. Dadurch wird die benötigte Zeit zur Cache-Generierung erheblich reduziert.
-
Es kann immer nur ein Datenrahmen gecacht werden. Wenn weitere Datenrahmen erforderlich sind, müssen separate Caches generiert werden, die separaten MapServices zugeordnet sind.
-
Mit dem Kachelschema wird festgelegt, wie der Client die Kacheln im Cache referenzieren soll. Es kann ein neues Kachelschema erstellt werden, oder es kann ein mit dem Werkzeug "Kachelschema für Map Server-Cache erstellen" erstelltes, vorhandenes Kachelschema verwendet werden.
-
Verwenden Sie in den meisten Fällen FUSED-Caches. Alle Layer in der Karte werden für die angegebenen Maßstabsebenen in einzelnen Bildern zusammengeführt und anschließend in viele Kacheln aufgeteilt.
-
Verwenden Sie Multi-Layer-Caches in Situationen, in denen Sie Layer aktivieren und deaktivieren möchten.
-
Der Parameter für die Anzahl der Maßstäbe beschreibt die Anzahl der verschiedenen Kartenmaßstäbe, für die das Werkzeug Layer im Cache erstellt.
-
Das Berechnen von großen Kartenmaßstabsebenen für sehr große Kartenausdehnungen (z. B. große Bundesstaaten, Provinzen oder Länder) kann zu einer langen Erstellungsdauer führen. Ein Beispiel ist das Berechnen einer Kachelgröße für größere Kartenmaßstäbe als 1:100.000 für ganz Nordamerika.
-
Der wesentliche Vorteil der Bildkomprimierung im Cache besteht darin, dass die Größe der Bilddateien verringert und damit die Leistung im Netzwerk verbessert wird. Da weniger Daten zwischen dem Client und dem Server übertragen werden, können große, nahtlose Raster-Datasets (bis zu mehreren Terabytes) im Cache gespeichert und schnell für die Anzeige an einen Client übermittelt werden. Ein weiterer Vorteil besteht darin, dass der Cache auf dem Datenträger deutlich weniger Speicherplatz belegt.
-
Wenn Sie mit diesem Werkzeug einem vorhandenen Cache weitere Ebenen (Maßstäbe) hinzufügen möchten, müssen Sie den Komprimierungsfaktor angeben, der auch für die ursprünglichen Ebenen verwendet wurde.
-
JPEG empfiehlt sich besonders für Raster-Daten. Bei der Verwendung mit Vektordaten können Linien und Text verschwommen dargestellt werden.
-
Das Dateiformat JPEG wird für Multi-Layer-Caches nicht unterstützt.
-
Das Kachelformat des Caches kann nach dem Generieren des Caches nicht mehr geändert werden. Der Cache muss erst gelöscht werden, bevor ein anderes Dateiformat festgelegt werden kann.
-
Die beste Leistung bei der Übertragung von Cache-Kacheln an Clients wird mit dem Bildformat JPEG erzielt. Wählen Sie das Bildformat PNG8 aus, um die beste Kombination aus Leistung und Unterstützung von Transparenz zu erzielen.
-
Mithilfe der Option "Antialiasing" werden die Kanten von Linien und Text geglättet, die Darstellung von Raster-Bildern wird jedoch nur unwesentlich verbessert.
-
Dieses Werkzeug übernimmt keine angegebenen Umgebungseinstellungen.
Syntax
Parameter | Erläuterung | Datentyp |
server_name |
Der Host-Name des ArcGIS Server-Computers, dessen Cache generiert wird. | String |
object_name |
Der Name des Karten-Services, dessen Cache generiert wird. | String |
data_frame |
Der Datenrahmen des Kartendokuments, der im Cache gespeichert werden soll. Achten Sie darauf, den gleichen Datenrahmen auszuwählen, den Sie für den Karten-Service ausgewählt haben. | String |
out_folder |
Das übergeordnete Verzeichnis für diesen Karten-Service-Cache. | String |
tiling_scheme_type |
Wählen Sie aus, ob ein neues (NEW) oder ein vordefiniertes (PREDEFINED) Kachelschema verwendet werden soll. In diesem Werkzeug kann ein neues Kachelschema definiert werden, oder es kann eine Datei mit einem vordefinierten Schema (XML-Datei) geladen werden. Ein vordefiniertes Schema kann durch Ausführen des Geoverarbeitungswerkzeugs "Kachelschema für Map Server-Cache erstellen" erstellt werden. Die Standardeinstellung ist NEW. | Boolean |
scales_type |
Festlegen der Maßstabsebenen
| Boolean |
num_of_scales |
Die Anzahl der Maßstabsebenen, die im Cache erstellt werden sollen. | 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 Ausgabe-Kartenkacheln in Pixel. Mit geringen Breiten kann die Performance der Anwendung bei der Anforderung von Kacheln aus dem Cache gesteigert werden, da weniger Daten übertragen werden. Bei kleineren Kachelgrößen steigt jedoch die Cache-Größe, und die Erstellung dauert länger. Die Standardkachelbreite ist 512. | Long |
tile_height |
Die Höhe der Ausgabe-Kartenkacheln in Pixel. Mit geringen Höhen kann die Performance der Anwendung bei der Anforderung von Kacheln aus dem Cache gesteigert werden, da weniger Daten übertragen werden. Bei kleineren Kachelgrößen steigt jedoch die Cache-Größe, und die Erstellung dauert länger. Die Standardkachelhöhe ist 512. | Long |
map_or_layers (optional) |
Wählen Sie aus, ob ein FUSED-Cache oder ein MULTI_LAYER-Cache erstellt werden soll:
| Boolean |
tiling_schema (optional) |
Pfad zu einem vordefinierten Kachelschema. | String |
tile_origin (optional) |
Geben Sie den Ursprung (obere linke Ecke) des Kachelschemas in Koordinaten des Raumbezugs des Quellkartendokuments an. Die Ausdehnung des Quellkartendokuments muss innerhalb dieser Region liegen (muss jedoch nicht lagegleich sein). | String |
levels Maßstab; Maßstab... (optional) |
Maßstäbe, mit denen der Karten-Service im Cache gespeichert werden soll. | String |
layer Layer; Layer... (optional) |
Layer, die in den Cache aufgenommen werden sollen, wenn der Cache-Typ MULTI_LAYER ausgewählt wurde. | String |
thread_count (optional) |
Die Anzahl der MapServer-Instanzen, die beim Generieren des Caches verwendet werden sollen. | Long |
Antialiasing (optional) |
Legen Sie fest, 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. Für Raster-Daten werden keine Verbesserungen erzielt. | Boolean |
cache_format (optional) |
Wählen Sie das Dateiformat PNG8, PNG24, PNG32 oder JPEG für die Kacheln im Cache aus. Die Standardeinstellung ist PNG24.
| 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. Die Komprimierungsstufe hängt von den Daten ab, sie kann jedoch auch durch Änderungen der Komprimierungsqualität gesteuert werden. Bei der Auswahl eines höheren Wertes ist die Komprimierungsstufe niedriger, aber die Bildqualität höher. Bei Auswahl eines niedrigeren Wertes ist die Komprimierungsstufe höher, aber die Bildqualität geringer. | Long |
Codebeispiel
# Script Name: Generate Fused Map Server Cache # Description: Generates a fused map server cache using PNG8 image format # Uncomment sys.argv[] lines to accept arguments from the command line. # Import standard library modules import sys, string, os, arcgisscripting # Create the Geoprocessor object gp = arcgisscripting.create() # Set the path to the cache. # Example: \\\\myServer\\arcgiscache\\MyServiceFolder_MyService\\ out_folder = "\\\\myServer\\arcgiscache\\MyServiceFolder_MyService\\" #out_folder = sys.argv[1] # Set the SOM server name # Example: "mySOM" server_name = "mySOM" #server_name = sys.argv[2] # Set the object_name # Example: "MyServiceFolder/MyService" object_name = "MyServiceFolder/MyService" #object_name = sys.argv[3] # Set the data frame # Example: "Layers" data_frame = "Layers" #data_frame = sys.argv[4] # Set the map cache tiling origin # Example: "-180 90" tile_origin = "-180 90" #tile_origin = sys.argv[5] # Set the scale levels for the cache. # Example: "2000000;500000;250000" scales = "2000000;500000;250000" #scales = sys.argv[6] # Set the layers to cache. # Example: "My First Layer;My Second Layer;My Third Layer" layers = "My First Layer;My Second Layer;My Third Layer" #layers = sys.argv[7] # Set number of instances to use while updating the cache # Example: "3" thread_count = "3" #thread_count = sys.argv[8] # Set cache tile image format. # Example: "PNG8" cache_format = "PNG8" #layers = sys.argv[9] # Non-argument variable declarations tiling_scheme_type = "NEW" tiling_schema = "" scales_type = "STANDARD" num_of_scales = "3" dpi = "96" tile_width = "512" tile_height = "512" map_or_layers = "FUSED" antialiasing = "ANTIALIASING" tile_compression_quality = "0" try: print 'Starting Cache Generation' gp.GenerateMapServerCache(server_name, object_name, data_frame, out_folder, tiling_scheme_type, scales_type, num_of_scales, dpi, tile_width, tile_height, map_or_layers, tiling_schema, tile_origin, scales, layers, thread_count, antialiasing, cache_format, tile_compression_quality) print 'Finished Cache Generation' except: gp.AddMessage(gp.GetMessages(2)) print gp.GetMessages(2)