Verwendung des Karten-Caches 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 Caches in den Anwendungen
Wenn Sie einen Karten-Cache fertig generiert haben, wird der Karten-Service automatisch neu gestartet und verwendet unmittelbar den Cache. 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 das Web Application Developer Framework (ADF) verwenden, fügen Sie den Anwendungen gecachte Karten-Services auf die gleiche Weise hinzu wie andere Karten-Service. Das Kartensteuerelement erkennt, ob der Service gecacht ist, und nutzt den Service zum Abrufen der Cache-Kacheln, sofern diese verfügbar sind. Wenn Sie Caches überlagern und das Web ADF für einen der Services keine Kacheln abrufen kann, wird dieser als dynamischer Service behandelt.
Nach dem Herstellen einer Verbindung zum GIS-Server ruft das Web ADF Kacheln direkt aus dem virtuellen Cache-Verzeichnis ab. Dies ist die schnellste Methode, um Kacheln abzurufen. Kacheln können nur für Caches, die im erweiterten Format gespeichert sind, auf diese Weise abgerufen werden.
Wenn das virtuelle Cache-Verzeichnis nicht verfügbar ist oder der Cache im kompakten Format gespeichert ist, versucht die Web ADF-Anwendung, die Kacheln aus dem Cache-Verzeichnis auf dem Dateisystem abzurufen. Informationen zum Abruf einer Kachel, die nicht direkt über ein virtuelles Cache-Verzeichnis verfügbar ist, durch eine Web ADF-Anwendung finden Sie im Abschnitt zur Diskussion zu Kartensteuerungselement.
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.
![Tipp Tipp](rsrc/tip.png)
Wenn die Karte langsamer als erwartet angezeigt wird, überprüfen Sie die URLs der Kartenbilder und stellen Sie sicher, dass die Anwendung Kacheln abruft. Eine Möglichkeit, dies zu realisieren, besteht darin, die Anwendung in Mozilla Firefox zu öffnen und auf Extras > Seiteninformationen > Medien zu klicken.
- 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 URLs wie diese angezeigt werden, ruft die Anwendung erfolgreich Kacheln aus dem virtuellen Cache-Verzeichnis ab:
http://myServer:8399/arcgiscache/myService/Layers/_alllayers/L00/R00001019/C00000c55.png
- Wenn URLs wie diese angezeigt werden, kann die Anwendung keine Kacheln aus dem virtuellen Cache-Verzeichnis abrufen, es werden jedoch erfolgreich Kacheln aus dem Dateisystem des Servers abgerufen:
http://myServer:8399/arcgis/services/myService/MapServer?mapname=Electric%20Solutions&level=14&column=2851&row=6544&format=PNG24&time=1191520207507
- 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.
Multilayer-Caches werden für die Verwendung in Webanwendungen nicht empfohlen. Wenn Sie Layer aktivieren und deaktivieren müssen, können Sie zwei oder mehr Fused-Caches überlagern, um den gleichen visuellen Effekt wie mit einem Multilayer-Cache zu erzielen. Führen Sie hierzu den folgenden Workflow aus:
- Fügen Sie jede Gruppe von Layern, die Teil des Multilayer-Caches gewesen wäre, in ein separates Kartendokument ein. Stellen Sie sicher, dass die volle Ausdehnung der Kartendokumente die gleiche ist.
- Veröffentlichen Sie jedes Kartendokument als Karten-Service.
- Erstellen Sie einen Fused-Cache für jeden Karten-Service unter Verwendung des gleichen Kachelschemas (entsprechende Bildformate sind nicht erforderlich).
- Fügen Sie der Karte die Services mit der gewünschten Layer-Reihenfolge und den gewünschten Transparenzen hinzu. Benutzer der Karte können die Services aktivieren und deaktivieren.
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 Caches 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 Caches 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.
ArcMap ist der ideale Client für die Verarbeitung von Multilayer-Caches. Grund hierfür ist, dass ArcMap in der Lage ist, Multilayer-Cache-Kacheln auf der Client-Seite zu kombinieren und zu beschriften (im Gegensatz zu Web ADF-Anwendungen).
ArcGlobe und ArcGIS Explorer
ArcGlobe und ArcGIS Explorer können 2D-Caches lesen und auf der Globusoberfläche drapieren. Eine maximale Leistung erzielen Sie, wenn Sie den Cache mit einem der integrierten Kachelschemas erstellen, die von ArcGIS Online, Google Maps und Bing Maps verwendet werden. Sind diese Kachelschemas nicht verfügbar, erhalten Sie die beste Leistung bei Verwendung von ArcGIS Server 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 Leistung 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 Caches nicht verfügbar.
Wenn der Serveradministrator einen Bereich des Server-Caches 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 den lokalen Cache 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
Webanwendungen, z. B. die mit den ArcGIS-APIs für JavaScript erstellten Anwendungen, erfordern, 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.
Beim Entwerfen von Karten-Caches, die andere Karten-Caches in einer Web ADF-Anwendung überlagern, müssen bestimmte Regeln eingehalten werden, um eine erfolgreiche Überlagerung der Caches sicherzustellen. Weitere Informationen zu diesen Bedingungen finden Sie unter Überlagern von Karten-Caches im Java Web ADF.
Ü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 Leistung und die Darstellungsqualität der Karte optimiert werden.