Verwendung des Karten-Cache durch Clients
Dieses Thema gliedert sich in drei Teile. Im ersten Abschnitt wird beschrieben, wie ArcGIS-Anwendungen auf die Kacheln in einem Karten-Cache zugreifen und diese verwenden. Im zweiten Teil erfahren Sie, wie die Kacheln in diesen Anwendungen für spätere Verwendungszwecke gespeichert werden. Der letzte Abschnitt enthält Anweisungen für das Überlagern von Karten-Caches in ArcGIS-Anwendungen.
Zugriff auf den Cache und Verwendung des Cache in den Anwendungen
Sobald Sie ein Kachelschema für Ihren Karten-Service definiert haben, versucht der Service unmittelbar, den Cache zu verwenden. Der Cache wird von allen ArcGIS-Anwendung verwendet, die einen Karten-Service anzeigen können. Die Kacheln werden jedoch von jeder Anwendung auf andere Weise abgerufen und verwendet.
Webanwendungen
Bei der Entwicklung mithilfe der ArcGIS-APIs für JavaScript, Flex und Silverlight geben Sie mithilfe einer bestimmten Klasse an, dass Sie eine Verbindung zu einem gekachelten Karten-Service (gecacht) herstellen. Mit der JavaScript-API verwenden Sie beispielsweise ArcGISTiledMapServiceLayer, um eine Verbindung mit einem gecachten Service herzustellen. Bei Verwendung des gecachten Service werden Kacheln mittels REST-Aufrufen des Karten-Service aus dem Cache-Verzeichnis abgerufen. Die Kachelanforderung hat folgendes Format: http://<Karten-Service-URL>/tile/<Ebene>/<Zeile>/<Spalte>.
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. Sie können sicherstellen, dass beim Schwenken auf einen nicht gecachten Bereich eine Karte angezeigt wird, indem Sie das bedarfsgesteuerte Caching aktivieren.

Wenn die Karte langsamer als erwartet angezeigt wird, überprüfen Sie die URLs der Kartenbilder und stellen Sie sicher, dass die Anwendung Kacheln abruft. Sie können hierfür die Anwendung in Mozilla Firefox 4 (oder höher) öffnen und auf Firefox > Web Developer > Web Console klicken. Sobald die Konsole angezeigt wird, klicken Sie auf die Schaltfläche Net, und zoomen oder schwenken Sie die Karte.
Wenn URLs wie diese angezeigt werden, ruft die Anwendung erfolgreich Kacheln aus REST-Anforderungen ab:
http://myServer/ArcGIS/rest/services/myService/MapServer/tile/10/1723/3495.jpg
Wenn ein anderes URL-Format für die Kartenbilder angezeigt wird, ruft die Anwendung die Kachel auf eine weniger effiziente Weise ab, oder der Cache wird nicht verwendet.
ArcMap
Sie fügen ArcMap die gecachten Karten-Services mithilfe der Schaltfläche Daten hinzufügen auf die gleiche Weise wie andere Karten-Services hinzu. Zum Anzeigen eines Cache in ArcMap stehen zwei Möglichkeiten zur Verfügung:
- Greifen Sie über einen Karten-Service auf den Cache zu. Um den Cache auf diese Weise anzuzeigen, wechseln Sie zum GIS-Server und Karten-Service, die zum Erstellen des Cache verwendet wurden. In diesem Szenario stellt ArcMap eine erste Verbindung mit dem GIS-Server her und ermittelt, ob der Service über einen Cache verfügt. Dann ruft ArcMap Kacheln aus dem Cache-Verzeichnis im Dateisystem des Servers ab.
- Greifen Sie auf den Cache als Raster-Dataset zu. Um einen Cache auf diese Weise anzuzeigen, wechseln zu dem Verzeichnis mit den Cache-Kacheln, und fügen Sie das Dataset zu ArcMap hinzu. Der Cache wird mit dem gleichen Symbol dargestellt, das zum Hinzufügen aller anderen Raster mithilfe der Schaltfläche "Daten hinzufügen" verwendet wurde. Ein Cache, auf den als Raster zugegriffen wurde, dient nur zur Anzeige und kann nicht abgefragt werden. Der Vorteil dieses Typs von Cache ist, dass er nicht an einen Karten-Service gebunden ist und auch ohne Verbindung zum Server angezeigt werden kann, solange Sie Zugriff auf das Cache-Verzeichnis haben.
Wenn eine Kachel in einem Maßstab angefordert wird, der exakt mit einer Maßstabsebene im Cache übereinstimmt, gibt der Karten-Service die Kachel direkt zurück. In den meisten Fällen stimmen die Anforderungen jedoch nicht genau mit den Maßstabsebenen im Cache überein. ArcMap fordert dann in der Regeln die Kachel der nächsten Maßstabsebene an und führt ein Resampling durch, um sie an den angeforderten Maßstab anzupassen. Dieses Resampling ist deutlich schneller als das dynamische Generieren einer Kachel, das resultierende Bild stimmt jedoch nicht genau mit der ursprünglichen Kachel überein. Gecachte Kartenbeschriftungen sind aufgrund des Resamplings in bestimmten Maßstäben in ArcMap möglicherweise nur schlecht lesbar. Um optimale Ergebnisse zu erzielen, sollten Sie die Karte in dem gleichen oder einem ähnlichen Maßstab anzeigen, mit dem der Cache erstellt wurde.
ArcGlobe und ArcGIS Explorer
ArcGlobe und ArcGIS Explorer können 2D-Caches lesen und auf der Globusoberfläche drapieren. Eine maximale Performance erzielen Sie, wenn Sie den Cache mit dem Kachelschema ArcGIS Online/Google Maps/Bing Maps erstellen. Wenn diese Kachelschemas nicht verfügbar sind, erzielen Sie die beste Performance unter Verwendung von Globe-Services.
Ein Szenario, in dem Sie ArcGlobe einen Karten-Service hinzufügen möchten, kann sein, wenn Sie einen 2D-Karten-Cache erstellt haben und einen identischen 3D-Globe-Cache aus dem 2D-Cache erstellen möchten. In einem solchen Szenario müssten Sie nur den Cache generieren und nicht im Globus navigieren.
Lokales Caching von Layern auf dem Client
ArcMap, ArcGIS Explorer und ArcGlobe verfügen über lokale Caches mit den von Ihnen aufgesuchten Kacheln. Wenn Sie diese Bereiche erneut zoomen oder auf diese schwenken, verwendet die Anwendung den lokalen Cache und muss die Kacheln nicht ein zweites Mal vom Server abrufen.
Sie können auswählen, ob Sie den lokalen Cache für zukünftige Sitzungen auf der Festplatte speichern möchten oder ob Sie den lokalen Cache nur für die aktuelle Sitzung verwenden möchten.
Sie können auch angeben, dass die Kacheln nicht im lokalen Cache gespeichert werden sollen. Hierdurch geht zwar die höhere Performance infolge des lokalen Cachings verloren, Sie rufen aber garantiert immer die neueste Kachel vom Server ab.
Es ist möglich, dass der Serveradministrator das lokale Caching des Layers deaktiviert hat. In diesem Fall erhalten Sie ebenfalls immer die aktuellste Kachel. Wenn dies der Fall ist, sind die anderen Optionen zum lokalen Speichern des Cache nicht verfügbar.
Wenn der Serveradministrator einen Bereich des Server-Cache aktualisiert, den Sie bereits angezeigt haben, müssen Sie den lokalen Cache löschen, damit die Änderungen sichtbar sind. ArcMap, ArcGIS Explorer und ArcGlobe können nicht erkennen, ob ein Cache aktualisiert wurde. Als Serveradministrator müssen Sie die Benutzer daher benachrichtigen, wenn aktualisierte Daten verfügbar sind, damit diese die lokalen Caches löschen können.
Überlagern von Caches
Beim Entwerfen von Karten-Caches, die mit anderen Karten-Caches überlagert werden, sind einige wichtige Faktoren für den Cache-Entwurf zu beachten, je nachdem welche Anwendung zum Anzeigen der Caches verwendet wird.
Überlagern von Karten-Caches in Webanwendungen
Für Webanwendungen, die beispielsweise mit den ArcGIS-APIs für JavaScript, Flex und Silverlight erstellt wurden, ist es erforderlich, dass 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.
Überlagern von Karten-Caches in ArcMap
Sie können in ArcMap eine beliebige Anzahl von Karten-Caches überlagern. Die Caches müssen nicht die gleichen Kachelschemas oder die gleichen Projektionen aufweisen. Aufgrund des Resamplings und der Neuprojizierung, die ArcMap ausführt, kann durch Verwendung ähnlicher Kachelschemas und Projektionen jedoch die Performance und die Darstellungsqualität der Karte optimiert werden.
Erzwingen einer dynamischen Zeichnung
Es gibt jedoch Situationen, in denen Sie möglicherweise erzwingen möchten, dass der Service den Cache ignoriert und dynamisch zeichnet, obwohl Kacheln auf einigen Ebenen verfügbar sind. Nehmen Sie beispielsweise an, Sie entwickeln eine Webanwendung mit ArcGIS-Web-APIs. Sie verfügen über eine Karte, die aus den Zoom-Stufen 0 bis 15 gecacht wurde, jedoch aus den Stufen 16 bis 19 dynamisch gezeichnet werden sollte. Dies kann der Fall sein, wenn Sie Echtzeitdaten in großen Maßstäben anzeigen möchten oder wenn die Karte einen Bereich abdeckt, der zu breit ist, um in großen Maßstäben gecacht zu werden.
Dieses Szenario kann gelöst werden, indem Sie dynamische Layer auf dem Server aktivieren und in Ihren Kartenanforderungen für die Maßstäbe 16-19 angeben, dass dynamische Layer verwendet werden. Andernfalls gibt der Service eine Karte zurück, die aus verfügbaren Kacheln erstellt wird und die in Bereichen, in denen keine Kacheln vorhanden sind, leer ist.