Ein gecachter Image-Service kann sich wie ein statischer oder wie ein dynamischer Image-Service verhalten. Im Allgemeinen ist ein gecachter Image-Service aufgrund seiner Kachelstruktur und statischen Natur schneller als ein Image-Service, der nicht gecacht wird (oder auf den als dynamischer Service zugegriffen wird). Wenn Sie auf einen gecachten Image-Service zugreifen, ist sein Standardverhalten statisch, und Sie haben nur eingeschränkten Zugriff auf die Service-Eigenschaften. Dies bedeutet, dass Sie die Mosaik-Methode und die Übertragungskomprimierung nicht ändern können.
Der Cache wird von allen Webanwendungen verwendet, die einen Image-Service anzeigen können. Die Kacheln werden jedoch von jeder Anwendung auf andere Weise abgerufen und verwendet.
ArcGIS Pro
Wenn Sie einen gecachten Image-Service anzeigen, ist dessen Funktionalität eingeschränkt. Sie können beispielsweise nicht die Mosaik- oder Übertragungskomprimierungsmethode ändern. Möglich ist jedoch das Ändern der Symbolisierung und Verbesserung, das Anwenden eines Identifizierungsvorgangs auf die Pixel, das Abfragen der Daten und das Herunterladen der Quelldaten.
Wenn Sie mit dem Image-Service dynamisch arbeiten und Funktionalität wie die Mosaik-Methode nutzen möchten, können Sie den Modus des Layers ändern. Klicken Sie zum Ändern des Modus mit der rechten Maustaste auf den Image-Service-Layer, und deaktivieren Sie Cache-Anzeigemodus aktivieren. Um den Image-Service als gecachten Service zu verwenden, aktivieren Sie diese Option wieder.
ArcGIS API for JavaScript-Anwendungen
Bei der Entwicklung mithilfe der ArcGIS API for JavaScript verwenden Sie die ArcGISTiledMapServiceLayer-Klasse zum Herstellen einer Verbindung mit einem gecachten Image-Service. Bei Verwendung des gecachten Image-Service werden Kacheln mittels REST-Aufrufen des Image-Service aus dem Cache-Verzeichnis abgerufen. Die Kachelanforderung hat folgendes Format: http://<image service URL>/tile/<level>/<row>/<column>.
Wenn URLs wie diese angezeigt werden, ruft die Anwendung erfolgreich Kacheln aus REST-Anforderungen ab:
http://gisserver.domain.com:6080/arcgis/rest/services/myService/ImageServer/tile/10/1723/3495
Wenn ein anderes URL-Format für den Image-Service angezeigt wird, ruft die Anwendung die Kachel auf weniger effiziente Weise ab, oder der Cache wird nicht verwendet.
Wenn Sie einen einzelnen gecachten Service in einer Webanwendung abrufen und auf einen Bereich ohne Kacheln schwenken, zeigt die Anwendung kein dynamisches Bild an. Die Anzeige ist in diesem Fall leer.
Tipp:
Wenn der Image-Service langsamer als erwartet angezeigt wird, überprüfen Sie die URLs des Image-Service, um sicherzustellen, dass die Anwendung Kacheln abruft. Sie können hierfür die Anwendung in Mozilla Firefox 4 öffnen und auf Firefox > Web Developer > Web Console klicken. Klicken Sie in der eingeblendeten Konsole auf die Schaltfläche Net, und zoomen oder schwenken Sie anschließend den Image-Service.
Tipp:
Vergewissern Sie sich, dass die gecachten Daten sich in derselben Projektion wie die anderen Daten befinden, die in der Webanwendung verwendet werden. Ist dies nicht der Fall, werden Ihre Daten ggf. nicht angezeigt, da die meisten Webanwendungen die Daten nicht neu projizieren können. Stellen Sie außerdem sicher, dass das Kachelschema für den gecachten Image-Service sowie die anderen gecachten Layer in der Webanwendung identisch sind, da andernfalls nicht alle Layer angezeigt werden.
Verbessern der Darstellungs-Performance von gecachten Image-Services
Wenn Clients Anforderungen an den ArcGIS Server senden, um einen Image-Service anzuzeigen, wird die Antwort vom Server normalerweise vom Browser gecacht und für einen bestimmten Zeitraum wiederverwendet. Dieses Verhalten unterstützt den ArcGIS Server dabei, die bestmögliche Darstellungs-Performance für Ihren Image-Service zu erzielen. Abhängig davon, wie der Image-Service und die ihm zugeordneten Daten in Anwendungen verwendet werden, können Sie die Länge des Zeitraums anpassen, die der Browser eine Antwort aus seinem Cache verwendet. Dies können Sie erreichen, indem Sie eine Eigenschaft mit dem Namen cacheControlMaxAge zur JavaScript Object Notation (JSON) des Service hinzufügen.
Verwendung der cacheControlMaxAge-Eigenschaft
Image-Service-Antworten von ArcGIS Server enthalten ein Entitätstag (ETag) und einen Cache-Control-Header. Der ETag-Header-Wert ist eine eindeutige Kennung der Antwort. Der Cache-Control-Header verfügt über einen max-age-Wert, der Informationen zum Browser bezüglich des maximalen Zeitraums, den eine Antwort aus dem Browser-Cache wiederverwendet werden kann. Dieser Wert wird von der Eigenschaft cacheControlMaxAge festgelegt.
Wenn eine Anforderung wiederholt wird und das maximale Alter des Cache nicht überschritten wurde, verwendet der Browser die gecachte Antwort, ohne die Anforderung an den Server zu senden. Wenn das maximale Alter überschritten wurde, muss der Browser die Anforderung an den Server senden und einen IF-NONE-MATCH-Header mit zugeordnetem ETag-Wert festlegen, der der Antwort im Cache entspricht. ArcGIS Server wertet die Anforderung aus und bestimmt anhand des ETag-Wertes, ob sich die Antwort geändert hat Wenn sich die Antwort vom Server von der Kopie im Browser unterscheidet, sendet der Server eine neue Antwort an den Browser. Wenn die Antwort mit der Kopie im Browser identisch ist, benachrichtigt der Server den Browser, dass die Antwort im Cache weiter verwendet werden soll.
Definieren des Wertes der cacheControlMaxAge-Eigenschaft
Als ArcGIS Server-Administrator können Sie die cacheControlMaxAge-Eigenschaft definieren, um anzugeben, wie lange ein Browser eine gecachte Antwort verwenden darf. Da ArcGIS Server nicht immer eine vollständige Antwort senden muss, kann der Browser-Cache effizienter verwendet werden, Ihre Anwendungen werden optimiert, und es wird Netzwerkbandbreite gespart.
Bei gecachten Image-Services, die das lokale Cachen von Kacheln auf Clients nicht zulassen, ist der Standardwert 0. Dies bedeutet, der Browser sendet eine Anforderung immer erneut und der ArcGIS Server verarbeitet die Anforderung und sendet eine vollständige Antwort an den Browser, wenn sich der Inhalt geändert hat.
Bei gecachten Image-Services, die das lokale Cachen von Kacheln auf Clients zulassen, ist der Standardwert 12 Stunden (43.200 Sekunden). Dies bedeutet, wenn eine Anforderung innerhalb von 12 Stunden wiederholt wird, verwendet der Browser die Antwort aus dem Cache. Dieser Wert eignet sich für die meisten Anwendungen.
Weitere Informationen zum lokalen Caching
Bei gecachten Image-Services, deren Karte oder Daten sich nicht häufig ändern, empfiehlt es sich, den Standardwert auf 30 Tage (2.592.000 Sekunden) oder länger zu erhöhen, um den Netzwerkdatenverkehr so gering wie möglich zu halten.
Gehen Sie wie folgt vor, um die cacheControlMaxAge-Eigenschaft zu Ihrem Service hinzuzufügen und ihren Standardwert anzugeben:
- Öffnen Sie in einem Web-Browser das ArcGIS Server-Administratorverzeichnis, und melden Sie sich als Benutzer an, dem Administratorberechtigungen zugewiesen sind. Die URL hat das Format https://gisserver.domain.com:6443/arcgis/admin.
- Klicken Sie auf Services, und wählen Sie den Image-Service, den Sie ändern möchten, aus der Liste Services aus. Wenn der Service nicht in der Liste angezeigt wird, befindet er sich möglicherweise in einem Verzeichnis unterhalb des Stammordners.
- Führen Sie auf der Seite Service - <Service-Name> (<service type>) einen Bildlauf bis zum unteren Rand aus, und klicken Sie auf edit.
- Suchen Sie im Dialogfeld Service-Eigenschaften den Abschnitt "properties" des Service-JSON.
- Fügen Sie dem Abschnitt die cacheControlMaxAge-Eigenschaft hinzu, und geben Sie den Wert (in Sekunden) für die Eigenschaft an, zum Beispiel:
"properties": { "cacheControlMaxAge": "2592000",
- Klicken Sie auf Änderungen speichern.
- Stellen Sie auf der Seite Service - <Service-Name> (<Service-Typ>) sicher, dass die cacheControlMaxAge-Eigenschaft und der Wert, den Sie dafür angegeben haben, im Abschnitt Eigenschaften angezeigt wird.
Überlagern von Caches in Webanwendungen
Beim Entwerfen von Image-Service-Caches, die mit anderen gecachten Services überlagert werden, sind (wie zuvor erwähnt) wichtige Faktoren für den Entwurf des Cache zu beachten. Für Webanwendungen, die mit der ArcGIS API for JavaScript erstellt wurden, müssen Sie beim Überlagern von Caches das Koordinatensystem und die Kachelgröße anpassen. Ebenso empfiehlt es sich, möglichst viele Maßstäbe zur Deckung zu bringen. Am einfachsten ist dies zu realisieren, indem Sie die Kachelschemas für beide Caches anpassen und Kacheln nur in den Maßstäben erstellen, die für jeden Cache sinnvoll sind. Auf diese Weise können Sie sicher sein, dass Sie das Koordinatensystem und die Kachelgröße angeglichen haben und dass die Software die übereinstimmenden Maßstäbe der beiden Caches erkennt.
Das empfohlene Kachelschema ist das ArcGIS Online-/Google Maps-/Bing Maps-Kachelschema.
OGC WMTS
Die WMTS-Spezifikation (Web Map Tile Service) des Open Geospatial Consortium (OGC) ist eine internationale Spezifikation zur Bereitstellung digitaler Karten im Web über gecachte Bildkacheln. Wenn Sie einen gecachten Karten- oder Image-Service über ArcGIS for Server erstellen, können Sie automatisch über die WMTS-Spezifikation auf den Service und seine Kacheln zugreifen.
Die URL für das Herstellen einer Verbindung zu einem gecachten Image-Service mit dem WMTS-Protokoll entspricht dem folgenden Muster:
https://gisserver.domain.com:6443/arcgis/rest/services/folder/service/ImageServer/WMTS