Häufige gestellte Caching-Fragen
Unten finden Sie einige häufig gestellte Fragen zum Karten- und Globus-Caching. Die Fragethemen reichen von einfach bis fortgeschritten. In vielen Fällen bieten die Antworten zusammengefasste Informationen, die woanders in der Hilfe gefunden wurden. Dieses Thema kann jedoch die Antwort auf eine bestimmte Frage schneller als beim Durchsuchen der Hilfe bereitstellen.
Allgemeine Caching-Fragen
Fragen zum Karten-Caching
- Wie generiere ich einen vollständigen Cache bei einigen Maßstäben und einen partiellen Cache bei anderen Maßstäben?
- Was ist die beste Möglichkeit, den Cache nur für einige der Maßstäbe in meinem Kachelschema zu generieren?
- Warum dauert das Karten-Caching in Version 10.0 teilweise länger als in Version 9.x?
- Wie zeige ich eine Kachel "Daten nicht verfügbar" für leere Cache-Bereiche an?
- Wie vermeide ich doppelte Beschriftungen in meinem Cache?
- Warum sehe ich beim Erstellen eines Caches auf Grundlage einer Feature-Class-Grenze zusätzliche Kacheln, die außerhalb der Features erstellt werden?
- Warum werden beim Erstellen von Kacheln bei Bedarf zusätzliche Kacheln außerhalb der Kartenausdehnung des Benutzers erstellt?
Fragen zum Globus-Caching
Warum starten die Caching-Werkzeuge meine Services neu?
Cache-Kacheln für Kartenserver verwalten und andere Caching-Werkzeuge führen mehrere Vorgänge im Hintergrund aus, die vor und nach der Werkzeugausführung einen Neustart des Services erfordern. Beispielsweise erweitert Cache-Kacheln für Kartenserver verwalten vor dem Erstellen von Kacheln den Timeout-Wert des Services, um Timeouts während großer Caching-Aufträge zu vermeiden; nachdem die Kacheln erstellt wurden, wird die Timeout-Länge auf den ursprünglichen Wert zurückgesetzt.
Auch wenn die Caching-Werkzeuge die Kachelschemadatei "conf.xml" ändern, ist ein Neustart erforderlich, damit der Karten-Service die Änderungen übernimmt. Wenn Sie beispielsweise Cache-Maßstäbe für Kartenserver verwalten verwendet haben, um Maßstäbe im Cache hinzuzufügen oder zu löschen, ist ein Neustart erforderlich, damit der Karten-Service die Änderungen am Kachelschema erkennt.
Der Service ist während des Neustarts kurzzeitig nicht verfügbar.
Wie generiere ich einen vollständigen Cache bei einigen Maßstäben und einen partiellen Cache bei anderen Maßstäben?
Bei großen Maßstäben ist es oft eine empfohlene Vorgehensweise, die erwartungsgemäß am häufigsten verwendeten Kacheln vorab zu erstellen und den Rest der Kacheln bei Bedarf zu erstellen. Im Gegensatz dazu möchten Sie bei kleinen Maßstäben wahrscheinlich einen vollständigen Cache erstellen, da für die kleinen Maßstäbe weniger Kacheln erforderlich sind und diese häufiger von Clients angezeigt werden, wenn sie die Karte zum ersten Mal aufrufen.
Sie können das Werkzeug Cache-Kacheln für Kartenserver verwalten mehrmals ausführen, um auf einigen Ebenen der Karte einen partiellen Cache und auf anderen Ebenen einen vollständigen Cache zu erstellen.
Angenommen, Sie haben eine Karte, die Sie mit diesen Maßstäben cachen möchten:
- 1:128000
- 1:64000
- 1:32000
- 1:16000
- 1:8000
- 1:4000
Sie könnten Cache-Kacheln für Kartenserver verwalten ausführen und nur die Optionen 1:128000, 1:64000 und 1:32000 aktivieren. Standardmäßig wird die volle Ausdehnung dieser Maßstäbe gecacht.
Dann könnten Sie das Werkzeug erneut ausführen und nur die Optionen 1:16000, 1:8000 und 1:4000 aktivieren. Außerdem könnten Sie festlegen, diese Maßstabsebenen basierend auf der Ausdehnung der Features in einer Feature-Class zu cachen, z. B. ein Ort oder eine Landkreisgrenze, statt die volle Ausdehnung der Karte zu cachen. Dies erstellt auf diesen drei Maßstabsebenen einen partiellen Cache. Optional könnten Sie festlegen, den Rest der Kacheln in diesen Maßstäben bei Bedarf zu erstellen.
Was ist die beste Möglichkeit, den Cache nur für einige der Maßstäbe in meinem Kachelschema zu generieren?
Das Werkzeug Cache-Kacheln für Kartenserver verwalten listet alle Maßstäbe im Kachelschema auf, jeweils mit Kontrollkästchen daneben. Wenn Sie nur für einige der Ebenen im Kachelschema einen Cache generieren möchten, deaktivieren Sie die Maßstäbe, die Sie nicht cachen wollen, bevor Sie das Werkzeug ausführen.
Einen Cache nur für eine Teilmenge der Ebenen des Kachelschemas zu erstellen ein häufig verwendeter Workflow beim Überlagern von Caches mit ArcGIS Online-, Bing Maps- oder Google Maps-Services. In vielen Fällen möchten Sie die Daten mit diesen Grundkarten überlagern, aber Sie haben möglicherweise nicht die Zeit oder den Speicherplatz, alle Maßstäbe zu bearbeiten, die diese Services verwenden. Sie können das gleiche Kachelschema wie diese Services verwenden und nur die großen Maßstäbe deaktivieren, bevor Sie das Werkzeug ausführen.
Warum dauert das Karten-Caching in Version 10.0 teilweise länger als in Version 9.x?
Um diese Frage zu beantworten, sind einige Hintergrundinformationen darüber, wie der Server an einen Caching-Auftrag in 10.0 herangeht, sehr nützlich.
In ArcGIS 10 sind die für das Erstellen des Cache vorgesehenen Service-Instanzen (ArcSOC.exe-Prozesse) einer viel größeren Flächeneinheit zur ununterbrochenen Arbeit vorgesehen, als es bei 9.x der Fall war. Der ArcSOC.exe-Prozess arbeitet in einem Bereich mit einer Größe von 128 x 128 Kacheln, bevor er zum nächsten Bereich wechselt. Wir nennen dies zur Vereinfachung ein "Paket", auch wenn nicht zwingend eine Paketdatei erstellt werden muss, wenn Sie einen erweiterten Cache erstellen.
Während dem Caching arbeitet jede ArcSOC.exe an einem Paket und wechselt dann zum nächsten verfügbaren Paket. Es kann zu jedem beliebigen Zeitpunkt nur ein ArcSOC.exe-Prozess an einem Paket arbeiten.
Bei 9.x war die Arbeitseinheit für einen ArcSOC.exe-Prozess "Superkachel", deren Maße mit 2048 x 2048 Pixeln (4096 x 4096 ohne Anti-Aliasing) bedeutend kleiner waren als die eines Pakets. Der Wechsel zu Paketen als Arbeitseinheit optimiert den E/A-Betrieb und den Netzwerkdurchsatz, was zu einem erheblichen Leistungsgewinn führt. Die ArcSOC.exe-Prozesse ändern weniger oft Zuweisungen und können sich auf das Erstellen von Kacheln konzentrieren.
Die Verwendung von Paketen hat jedoch einen Nebeneffekt: bei einer Arbeit mit kleineren Caches oder wenn das Caching auf sehr kleinen Feature-Grenzen beruht, kann die Cache-Erstellung etwas länger dauern als in 9.x. Dies liegt ganz einfach daran, dass möglicherweise weniger Pakete als ArcSOC.exe-Prozesse verfügbar sind. Wenn Sie acht ArcSOC.exe-Prozesse zur Arbeit an Caching, jedoch nur ein Paket, das sich mit Ihrem Interessensbereich überschneidet, verfügbar haben, wird nur ein ArcSOC.exe-Prozess verwendet. Dies ist ein kleiner Kompromiss im Vergleich zur verbesserten Effizienz der Caching-Werkzeuge bei der Abwicklung großer Cache-Aufträge.
Zur Vermeidung einer solchen Situation für große Caches sollte basierend auf großen Feature-Grenzen gecacht werden, die mehr Pakete als verfügbare ArcSOC.exe-Prozesse enthalten.
Wie zeige ich eine Kachel "Daten nicht verfügbar" für leere Cache-Bereiche an?
Wenn ein Bereich des Caches nicht vorhanden ist, können Sie entweder die Kachel bei Bedarf erstellen oder den Webserver so konfigurieren, dass er eine Kachel "Daten nicht verfügbar" zurückgibt. Die Kachel "Daten nicht verfügbar" ist auch nützlich, wenn jemand zur Kante der Karte schwenkt oder zu einem Bereich navigiert, der noch nicht vollständig gecacht ist. Den Webserver so zu konfigurieren, dass er eine Kachel "Daten nicht verfügbar" zurückgibt, kann in einigen Fällen benutzerfreundlicher sein, als nichts zurückzugeben.
Anweisungen, wenn kein virtuelles Cache-Verzeichnis verwendet wird (enthält alle JavaScript-, Flex- und Silverlight-Anwendungen)
Für REST-basierte Anwendungen, z. B. jene, die Sie mit den ArcGIS-APIs für JavaScript, Flex oder Silverlight erstellen, konfigurieren Sie eine Kachel "Daten nicht verfügbar", indem Sie auf der Stammebene des Caches eine leere Kachel mit dem Namen "missing.png", "missing.jpg" oder "blank.png" platzieren. Der Kachelhandler-Service verwendet standardmäßig diese Kachel, wenn sich im Cache keine Kachel befindet. Dieses Verfahren gilt auch für Web ADF-Anwendungen, bei denen kein virtuelles Cache-Verzeichnis verwendet wird oder für den Cache deaktiviert ist. Gehen Sie folgendermaßen vor:
- Erstellen Sie ein Bild mit den gleichen Dimensionen und demselben Bildformat wie eine Kachel im Kachelschema. Nennen Sie es "missing.png" oder "missing.jpg". Wenn eine leere Kachel benötigt wird (z. B. für Overlay-Services, für die Transparenz erforderlich ist), verwenden Sie stattdessen "blank.png". Informationen zum Herunterladen einer Beispielkachel finden Sie im ESRI Knowledge Base-Artikel 36939.
- Speichern Sie die Datei "missing.png", "missing.jpg" oder "blank.png" unter dem Ordner "_alllayers" für den Karten-Service. Zum Beispiel: C:\arcgisserver\arcgiscache\MyMapService\Layers\_alllayers\missing.png.
Der ArcGIS Server-Kachelhandler behandelt fehlende Kacheln automatisch, indem er die erwarteten, aber fehlenden Kacheln durch die spezielle Kachel mit dem Namen "missing" oder "blank" auf der Stammebene des Caches ersetzt.
IIS-Beispiel zum Erstellen einer benutzerdefinierten Fehlerantwort, wenn die Web ADF-Anwendung ein virtuelles Cache-Verzeichnis verwendet
Wenn Sie eine Web ADF-Anwendung erstellen, die ein virtuelles Cache-Verzeichnis verwendet, können Sie im virtuellen Cache-Verzeichnis eine benutzerdefinierte Fehlerantwort für "HTTP-Fehler 404: Nicht gefunden" erstellen. Statt einer Fehlermeldung gibt der Webserver die Kachel zurück. Es folgt ein Beispiel für IIS 6:
- Öffnen Sie die Windows-Systemsteuerung, und klicken Sie auf Verwaltung > Internetinformationsdienste-Manager (IIS).
- Navigieren Sie zum virtuellen Cache-Verzeichnis und suchen Sie den Ordner, der den Karten-Cache enthält. Klicken Sie mit der rechten Maustaste auf den Ordner und dann auf Eigenschaften.
- Klicken Sie auf die Registerkarte Benutzerdefinierte Fehler, führen Sie einen Bildlauf nach unten durch, und wählen Sie dann den Fehler mit dem Fehlercode 404 aus.
- Klicken Sie auf die Schaltfläche Bearbeiten. Geben Sie im Feld URL die Kachel an, die IIS jedes Mal zurückgeben soll, wenn eine Kachel fehlt. Verwenden Sie einen relativen URL und nicht nur einen Pfad zu einer Datei.
- Klicken Sie auf OK, um die Dialogfelder zu schließen.
Wie vermeide ich doppelte Beschriftungen in meinem Cache?
Wenn Sie im Kartendokument eine dynamische Label-Engine verwenden, um Beschriftungen (im Gegensatz zu Annotations) zu platzieren, können gelegentlich doppelte Beschriftungen in den Cache-Kacheln auftreten. Diese sollten nicht häufiger als alle 4096 x 4096 Pixel in jeder Richtung auftreten. Sie können doppelte Beschriftungen mithilfe von Annotations entfernen. Wenn Sie Annotations verwenden, sind Beschriftungen mit einem Punkt auf der Karte verknüpft und treten nicht doppelt auf.
Die oben erwähnte Empfehlung gilt für Fused-Caches. Wenn Sie Multilayer-Caches verwenden, sind keine Beschriftungen in den gecachten Bildern enthalten. Die Beschriftungen werden dynamisch über den gecachten Bildern gezeichnet.
Wenn Sie Multilayer-Caches mit dem 9.2 .NET Web ADF verwendet haben, gab es wahrscheinlich viele doppelte Beschriftungen, da ein dynamischer Satz von Beschriftungen für jede Kachel erstellt wurde. Dieses Verhalten wurde ab 9.3 verbessert; aus Performance-Gründen sollten Sie im Allgemeinen jedoch nur Multilayer-Caches mit ArcMap als Client verwenden.
Warum sehe ich beim Erstellen eines Caches auf Grundlage einer Feature-Class-Grenze zusätzliche Kacheln, die außerhalb der Features erstellt werden?
Um doppelte Beschriftungen auf Kacheln zu vermeiden, zeichnen die Caching-Werkzeuge anfänglich Flächen von 4096 Pixel x 4096 Pixel (256 Kacheln der standardmäßigen Pixelkachelgröße 256 x 256), die dann in Kacheln der Größe geschnitten werden, die Sie im Kachelschema angefordert haben. Abhängig vom Kachelschema sowie Position und Form der Feature-Class können einige Kacheln aus dem Bereich 4096 x 4096 außerhalb der Grenze der Feature-Class liegen. Dies ist das erwartete Verhalten. Es sollten keine Kacheln außerhalb der Grenze der Feature-Class jenseits von 4096 Pixeln in jeder Richtung erstellt werden.
Warum werden beim Erstellen von Kacheln bei Bedarf zusätzliche Kacheln außerhalb der Kartenausdehnung des Benutzers erstellt?
Wenn Sie neue Kacheln anfordern (entweder bei Bedarf oder mithilfe der Caching-Werkzeuge), werden die Kacheln immer in Gruppen erstellt. Der Caching-Mechanismus erstellt nie jeweils nur eine Kachel. Wenn das so wäre, gäbe es viele doppelte Beschriftungen, da der Server die Beschriftungen auf benachbarten Kacheln nicht berücksichtigen könnte.
Wenn Sie das Caching bei Bedarf aktiviert haben und Sie zu einem nicht gecachten Bereich schwenken, wird eine 4096 x 4096 Pixel große Fläche vom Server gezeichnet, die dann in Kacheln geschnitten wird. Wenn also Ihre Kacheln 256 x 256 Pixel groß sind, können bis zu 256 Kacheln erstellt werden. Wenn die Karte viele Layer oder komplexe Symbole enthält, könnte dies zu langen Wartezeiten für den Client führen.
Aus diesem Grund wird dringend empfohlen, dass Sie Kacheln für häufig verwendete Bereiche der Karte vorab erstellen und Caching bei Bedarf nur in den weniger gefragten Bereichen verwenden. Vermeiden Sie, den ganzen Cache bei Bedarf zu erstellen, wenn Sie ein komplexes Quellkartendokument haben.
Welches Kachelschema sollte ich für Globe-Services verwenden?
Im Gegensatz zu Karten-Services verwenden alle Globe-Services das gleiche Kachelschema, daher müssen Sie nichts tun, um ein Kachelschema für Globe-Services einzurichten. Die Daten werden automatisch auf den Ebenen des integrierten Globus-Kachelschemas gecacht.
Wenn Sie genau hinsehen, können Sie sehen, dass diese Ebenen in ArcGlobe oder ArcGIS Explorer dargestellt werden. Wenn Sie die Globusansicht vergrößern, werden Sie feststellen, dass das Bild etwas schärfer oder ungenauer wird, während Sie verschiedene Höhen anzeigen.
Die Maßstäbe im ArcGIS Online-/Bing Maps-/Google Maps-Kachelschema entspricht ungefähr den integrierten Maßstabsebenen in ArcGlobe. Dieses Kachelschema ist oft eine gute Wahl, wenn Sie planen, den 2D-Karten-Service über die Globusoberfläche zu drapieren. Das Kachelschema ist nicht nur für die Darstellung ideal, sondern ArcGlobe ist auch konzipiert, um 2D-Services mit diesem Kachelschema sehr schnell zu zeichnen.