Skip To Content

Bedarfsgesteuertes Karten-Caching

ArcGIS ermöglicht Ihnen Karten-Cache-Kacheln bei Bedarf zu erstellen, wenn diese von Benutzern aufgesucht werden. Der erste Benutzer, der zu einer nicht gecachten Fläche navigiert, muss warten, bis die entsprechenden Kacheln vom Server gezeichnet wurden. Die Kacheln werden dann dem Cache-Ordner des Service hinzugefügt und bleiben auf dem Server, bis der Serveradministrator sie aktualisiert oder löscht. Dies bedeutet, dass nachfolgende Besucher der Fläche nicht warten müssen, bis die Kacheln erstellt wurden.

Bei sorgfältig abgewägtem Einsatz können Sie mit dem bedarfsgesteuerten Caching viel Zeit und Speicherplatz sparen. Die meisten Karten enthalten unwirtliche, unbrauchbare oder für die Kartenbenutzer irrelevante Flächen, insbesondere bei großen Maßstäben. Das bedarfsgesteuerte Caching entlastet Sie, da Sie diese nicht benötigten Kacheln nicht erstellen und speichern müssen. Benutzer haben aber dennoch die Möglichkeit die betreffenden Flächen bei Bedarf sich anzusehen.

Das bedarfsgesteuerte Caching ist zwar eine nützliche Funktion, kann jedoch bei falscher oder übermäßiger Verwendung die Performance beeinträchtigen. In den folgenden Abschnitten finden Sie Tipps für eine effektive Verwendung des bedarfsgesteuerten Caching.

Erreichen der maximalen Performance

Ein Vorteil des vollständigen Karten-Caching besteht darin, dass Sie komplexe Karten sehr schnell bereitstellen können, da die ArcGIS Server-Site gekachelte Bilder der Karte bereitstellt, das heißt, die Karte wird nicht bei jeder Anforderung neu gezeichnet. Wenn Sie jedoch das bedarfsgesteuerte Caching verwenden, dann muss die ArcGIS Server-Site die Kacheln dynamisch zeichnen, wenn ein Beutzer zu einem nicht gecachten Bereich navigiert. Dieses dynamische Zeichnen dauert länger als eine normale Anforderung, da die ArcGIS Server-Site eine Gruppe mehrerer Kacheln auf einmal erstellt. Diese Kachelgruppe hat eine Abmessung von 2048 x 2048 Pixel, wenn der Kartenservice das Antialiasing verwendet, und von 4096 x 4096 Pixel, wenn nicht. Das bedeutet, dass Sie Ihre Karte für das Zeichnen großer Flächen bei akzeptabler Geschwindigkeit vorbereiten müssen.

Detailinformationen:

In diesem Fall erstellt die ArcGIS Server-Site keine einzelne Kachel, da Sie andernfalls doppelte Beschriftungen sehen würden, weil die Beschriftungs-Engine keine Möglichkeit hat, zu bestimmen, welche Beschriftungen auf benachbarten Kacheln vorhanden sind.

In den nächsten zwei Abschnitten werden verschiedene Möglichkeiten vorgestellt, die Performance-Einbußen beim bedarfsgesteuerten Caching zu minimieren.

Bestimmen der Flächen für das bedarfsgesteuerte Caching

Das Wichtigste beim Konfigurieren eines bedarfsgesteuerten Cachings ist, die bei Bedarf und die vorab zu cachenden Flächen zu bestimmen. Verwenden Sie das bedarfsgesteuerte Caching niemals zum Erstellen des gesamten Cache. Sie sollten für die Flächen der Karte, für die Sie ein hohes Benutzeraufkommen erwarten, stets vorab Kacheln erstellen. Sie minimieren so die Wahrscheinlichkeit, dass ein Benutzer durch die bedarfsgesteuerte Anforderung von Kacheln Serverressourcen in Anspruch nimmt.

Die Bestimmung der Bereiche einer Karte, die am beliebtesten sein werden, hängt größtenteils vom Zweck und von der Zielgruppe der Karte ab. In der Regel werden die Grundkarte, besiedelte Orte, Straßen, Küsten, Parks und andere relevante Punkte häufiger als andere Flächen aufgesucht.

Thematische Karten können (im Gegensatz zu Grundkarten) andere Trends in Bezug auf beliebte Orte zeigen. Bei Karten, die durch ein Bergbauunternehmen verwendet werden, könnte die stärkste Verwendung in Gebieten liegen, in denen die Dichte der Minen am größten ist. Dies kann auch unbesiedelte oder bergreiche Flächen betreffen, die für die Allgemeinheit eher uninteressant sind.

Um die vorab im Cache zu speichernden Flächen zu bestimmen, analysieren Sie die Verwendungsmuster der aktuellen Karten (online oder auf dem Desktop). Durch eine informelle Beobachtung der von Benutzern am häufigsten aufgesuchten Bereiche und der abgerufenen Features gewinnen Sie wertvolle Informationen.

Die Datenverfügbarkeit und die Auflösung sind ebenfalls wichtig. Wenn in bestimmten Bereichen die Daten mangelhaft oder nicht vorhanden sind, dann können Sie das Caching dieser Bereiche überspringen. Selbst wenn ein Benutzer eine bedarfsgesteuert erstellte Kachel anfordert, nimmt das Zeichnen des Bereichs aufgrund des geringen Inhalts nur wenig Zeit in Anspruch.

Die Daten sind möglicherweise eng an den Zweck der Karte gebunden. Wenn Sie zum Beispiel mit einem Verkehrsministerium zusammenarbeiten, dann sollten Sie sicherstellen, dass Bereiche mit einer hohen Dichte an Straßen und Schienenwegen vorab gecacht werden. Werkzeuge für die räumliche Analyse, wie zum Beispiel Kerndichte, können Ihnen helfen, zu bestimmen, in welchen allgemeinen Bereichen die Dichte interessanter Features besonders hoch ist.

Wenn Sie die Bereiche, die die Benutzer am häufigsten besuchen werden, bestimmt haben, dann erstellen Sie eine Feature-Class, die diese Bereiche isoliert. Wenn Sie dann das Werkzeug Cache-Kacheln für Kartenserver verwalten, dann können Sie diese Feature-Class referenzieren, um sicherzustellen, dass Kacheln ausschließlich innerhalb der Grenzen dieser Feature-Class erstellt werden.

Sie können auch mehrere Werkzeuge in einem Modell oder Skript verknüpfen, um diese Feature-Class mit gängigen Orten zu erhalten. Das Modell kann beispielsweise verschiedene Eingaben für voraussichtlich gängige Features enthalten, die Features optional puffern oder deren Dichte bestimmen und schließlich die Ausgabe nachverarbeiten, um sicherzustellen, dass die resultierende Feature-Class für eine Caching-Vorlage geeignet ist. Zum Beispiel können Sie das Geoverarbeitungswerkzeug Polygon vereinfachen verwenden, um überzählige Stützpunkte, die die Caching-Werkzeuge verlangsamen könnten, zu entfernen.

Je mehr beliebte Bereiche der Karte Sie isolieren können, desto mehr Anfragen können Sie mit vorab gecachten Kacheln erfüllen, anstatt Kacheln nach Bedarf zu erstellen. Im Extremfall müssen Sie möglicherweise nur einen kleinen Teil der Karte cachen, um die übergroße Mehrheit der Benutzeranforderungen zu erfüllen. Der hierdurch eingesparte Zeitaufwand und Speicherplatz kann dann verwendet werden, um weitere Maßstabsebenen zu cachen.

Testen und Optimieren der Karte

Viele Organisationen verfügen über komplexe Kartendokumente, die ursprünglich für ein Desktop-GIS erstellt wurden. Diese Karten müssen häufig an die kurzen Antwortzeiten angepasst werden, die von Webbenutzern erwartet werden.

Bevor Sie eine Karte ändern, sollten Sie einen Test-Cache eines kleinen Bereichs erstellen, um einige Referenzzahlen zu erhalten. Wählen Sie einen Bereich der Karte mit einer geeigneten Mischung aus städtischen und ländlichen sowie ebenen und gebirgigen Gegenden aus. Notieren Sie sich, wie lange das Erstellen des Test-Cache gedauert hat. Aktivieren Sie als Nächstes das bedarfsgesteuerte Caching, und zoomen Sie auf einen nicht gecachten Bereich. Ermitteln Sie, wie lange es bei verschiedenen Maßstäben dauert, bis die Kacheln angezeigt werden. Wenn die Performance bereits jetzt akzeptabel ist, brauchen Sie keine Anpassungen vorzunehmen.

Um eine bessere Erkennung ineffizienter Layer in einem Kartenservice zu erreichen, legen Sie die Protokollierungsebene der ArcGIS Server-Site auf Ausführlich fest. Führen Sie eine Darstellungsanfrage an den Kartenservice durch, zum Beispiel das Zoomen auf ein Lesezeichen in ArcGIS Pro. Untersuchen Sie dann die ArcGIS Server-Protokolle in ArcGIS Server Manager, und notieren Sie sich, wie lange das Zeichnen der einzelnen Layer gedauert hat. Sie können so schnell erkennen, welche Layer die meiste Zeit benötigen. Diese Übung sollten Sie bei unterschiedlichen gecachten Maßstäben in nach dem Zufallsprinzip ausgewählten Bereichen der Karte wiederholen. Denken Sie daran, dass Sie die Protokollierung auf die vorherige Ebene zurücksetzen müssen, wenn Sie fertig sind, da bei der ausführlichen Protokollierung mehr Protokollinformationen als normalerweise erforderlich geschrieben werden.

Nachdem Sie die Karte optimiert haben, erstellen Sie einen weiteren Test-Cache und notieren sich, wie lange das Erstellen einer Kachel nach Bedarf gedauert hat. Wenn die Performance weiterhin nicht akzeptabel ist, haben Sie folgende Möglichkeiten:

  • Speichern Sie eine größere Fläche vorab im Cache. Hierdurch wird die Wahrscheinlichkeit verringert, auf eine bedarfsgesteuerte Kachel zu treffen. Sie können das bedarfsgesteuerte Caching auf besonders unwirtliche Flächen bei den größten Maßstäben beschränken und so sicherstellen, dass möglichst wenige Features gleichzeitig gezeichnet werden müssen.
  • Erstellen Sie einen vollständigen Cache. Wenn Sie alle Kacheln vorab im Cache speichern, müssen keine Kacheln bedarfsgesteuert erstellt werden. Dies könnte die beste Option sein, wenn ausreichend Zeit und Speicherplatz zum Erstellen eines vollständigen Cache vorhanden sind und dieser Cache nicht oft aktualisiert wird. Wenn Server-Ausfallzeiten beim Caching ein Problem darstellen, dann können Sie Caching-Jobs programmieren, die nachts und an Wochenenden ausgeführt werden, um den Cache des Service stetig aufzubauen, bis er voll ist. Sie können auch nur eine Service-Instanz für das Caching zuweisen, während andere Instanzen Benutzeranforderungen verarbeiten.
  • Verwenden Sie einen dynamisch gezeichneten Service. Wenn kein vollständiger Cache erstellt werden kann und die Performance beim dynamisch gezeichneten Service akzeptabel ist, können Sie das Caching auch komplett überspringen. Diese Option liefert zwar nicht die beste Performance, aber die Daten im Kartenservice sind immer auf dem neuesten Stand.

Aktualisieren von Kacheln

Wenn Sie die Quelldaten eines gecachten Kartenservice bearbeiten, dann müssen Sie den Cache aktualisieren, bevor die Benutzer die Änderungen sehen können. Wenn Sie die Empfehlung, vorab einen Cache eines Bereichs basierend auf einer Feature-Class zu erstellen und den Rest des Cache nach Bedarf zu füllen, befolgen, dann müssen Sie sorgfältig darauf achten, dass die Aktualisierungen alle notwendigen Bereiche berücksichtigen.

Sie können nach zwei Strategien vorgehen, um Ihren Cache zu aktualisieren, wenn Sie erstellte Kacheln nach Bedarf verwenden.

Löschen Sie alle Kacheln, die bedarfsgesteuert erstellt wurden, bevor Sie eine Aktualisierung ausführen.

Wenn Sie Kacheln bedarfsgesteuert erstellen, haben Sie wahrscheinlich eine bestimmte Fläche basierend auf einer Feature-Class vorab gecacht. Normalerweise führen Sie auch die Aktualisierung auf Grundlage dieser Feature-Class aus, sodass die bedarfsgesteuert erstellten Kacheln anschließend veraltet sind, wenn Sie diese nicht löschen.

Führen Sie zum Löschen der Kacheln Cache-Kacheln für Kartenserver verwalten im Modus Kacheln löschen aus. Löschen Sie Kacheln basierend auf der Umkehrung der Feature-Class, die Sie vorab gecacht haben. Sie können ArcGIS-Bearbeitungswerkzeuge verwenden, um ein Polygon zur Darstellung der vollen Ausdehnung der Karte zu erstellen und mit einem Loch für den vorab gecachten Bereich zu versehen. Das resultierende Kreisringpolygon kennzeichnet die Fläche, für die Kacheln gelöscht werden sollen. Unter Schneiden von Löchern in ein Polygon-Feature wird erläutert, wie mit dem Werkzeug Ausschneiden in ArcGIS Pro ein Loch in ein Polygon-Feature geschnitten wird.

Sie können aber auch alle Kacheln im Cache löschen, bevor Sie die Aktualisierung starten. Dies kann sich jedoch bei einem großen Cache negativ auf die Ressourcen der ArcGIS Server-Site auswirken.

Wenn sich Ihre Benutzer darüber beklagen, dass sie nach jeder Aktualisierung warten müssen, bis ein bestimmter Ort nach Bedarf gecacht wurde, dann fügen Sie diesen Ort dem Bereich, der vorab gecacht wird, hinzu. Wenn Sie mit Voraussicht vorab gecacht haben, dann sollte das bedarfsgesteuerte Caching nur selten und in zufälligen Mustern in den weniger interessanten Bereichen der Karte stattfinden. Wird ein Ort auf der Karte regelmäßig von den Benutzern aufgesucht, sollte dieser vorab gecacht werden.

Beschränken Sie die Cache-Aktualisierungen auf Flächen, in denen Daten bearbeitet wurden.

Eine Möglichkeit, dies zu realisieren, besteht darin, mittels Geodatabase-Archivierung oder einem benutzerdefinierten Werkzeug alle Änderungen seit der letzten Aktualisierung zu verfolgen, diese geänderten Flächen in eine Feature-Class zu exportieren und die Kacheln basierend auf der Feature-Class-Grenze zu aktualisieren.

Wenn Sie sicher sind, dass nur bearbeitete Flächen aktualisiert wurden, müssen Sie die bedarfsgesteuert erstellten Kacheln nicht aktualisieren.