Für jede Web-GIS-Anwendung ist ein Satz operationaler Layer erforderlich, die von einer bestimmten Benutzergruppe verwendet werden. In der Regel sind operationale Layer-Daten auf einige fokussierte Layer beschränkt und werden nur angezeigt, wenn Benutzer zu einer bestimmten Ebene zoomen. Die Daten werden per Stream an den Client gesendet und dann vom Client gerendert und verwaltet.
Es gibt mehrere Gründe hinter diesem Muster. Erstens sind operationale Layer oftmals dynamisch und sollten daher grundsätzlich nicht vorab gecacht werden. Zweitens erwarten die Benutzer, dass operationale Layer reagieren, schnell zeichnen, Details zu einem Mausklick melden und Links zu bestimmten Funktionen anzeigen. Drittens müssen operationale Layer im gleichen Koordinatensystem liegen wie der Grundkarten-Service. Dies ist besonders relevant, da Koordinatensystemdiskrepanzen zu Overlay-Problemen, schlechter Performance und Fehlern in der Web-GIS-Anwendung führen können.
Das dynamische Rendering und die Benutzerinteraktion auf Client-Seite können mit der ArcGIS API for JavaScript implementiert werden. Operationale Layer-Daten können gelegentlich jedoch zu groß sein, um vom Browser effektiv gerendert zu werden. In diesem Fall sollten operationale Layer-Daten vom Server gerendert werden.
Drei Methoden für die Veröffentlichung operationaler Karten-Layer
Für die Planung der Veröffentlichung der operationalen Karten-Layer auf dem Server haben Sie mehrere Optionen:
- mit Abfragen zur Auswahl einer Teilmenge von Features, die bestimmte Kriterien erfüllen, und anschließender Anzeige der Abfrageergebnisse mit Kartengrafiken und Text.
- Als dynamischer Karten-Service
- Als gecachter Karten-Service
Anzeigen der Abfrageergebnisse als Kartengrafiken und Text
Einer der effizientesten Mechanismen für die Anzeige operationaler Informationen ist die Verwendung der Ergebnisse einer Abfrage. Sie übermitteln eine Abfrage an den GIS-Server, der einen Satz von Feature-Ergebnissen als kleinen Datensatz zurückgibt. Die Abfrageergebnisse, die vom Server zurückgegeben werden, enthalten Features, deren Koordinaten und die jeweiligen Feature-Attribute. Diese Ergebnisse werden auf der Karte als interaktive Grafiken und beschreibende Informationen angezeigt, mit denen gearbeitet werden kann. Sie können als Diagramm, aufsummiert dargestellt, und als Hyperlinks, auf die für detailliertere Informationen zu den Features geklickt werden kann, verwendet werden. Dieser Ansatz erfordert die Programmierung der Anwendung, damit Karten-Layer mit Ergebnissen erstellt werden. Die ArcGIS API for JavaScript enthält Informationen zum Durchführen von Abfragen und zum Anzeigen von Ergebnissen auf der Karte als clientseitige Grafiken.
Als dynamischer Karten-Service
Eine der Arten von Karten-Services, die Sie veröffentlichen können, ist ein dynamischer Karten-Service. Wie schon der Name vermuten lässt, wird die Anzeige der Karten-Layer dynamisch generiert. Die Anzeige wird also immer dann berechnet und bereitgestellt, wenn ein Client die Anzeige des Karten-Service beim Server anfordert. Das resultierende Kartenbild wird an die anfordernde Anwendung gesendet und überlagert die Grundkarte.
Um einen dynamischen Karten-Service zu erstellen, müssen Sie zunächst ein ArcMap-Dokument erstellen, das einen einzelnen oder mehrere fokussierte Layer enthält. Dann können Sie ihn als Karten-Service veröffentlichen. Der daraus resultierende Karten-Service wird in der Web-GIS-Anwendung verwendet und ermöglicht Benutzern die Arbeit mit den operationalen Informationen.
Dynamische Karten-Services haben den Vorteil, dass sie einen aktuellen und genauen Status für den operationalen Layer bieten. Dynamische Karten-Layer sind jedoch oftmals die langsamste Möglichkeit, eine Karte im Internet zu zeichnen.
Als gecachter Karten-Service
Eine weitere Alternative für die Bereitstellung operationaler Karten-Layer ist die Verwendung eines gecachten Karten-Services, wobei die Kartenanzeige vorab berechnet und in einem Karten-Cache gespeichert wird. In diesen Fällen besteht keine Notwendigkeit, die Anzeige des operationalen Karten-Layers jedes Mal neu zu berechnen, wenn ein Client eine Karte vom Server anfordert. Stattdessen werden die passenden Kartenkacheln vom Server abgerufen. So werden die Performance und die Skalierbarkeit deutlich verbessert.
In einigen Fällen sind operationale Karten-Layer eher statisch und werden seltener geändert. Das bedeutet, dass Sie sie regelmäßig aktualisieren können, indem Sie vorab die Karte berechnen, statt jedes Mal eine neue Karte zu berechnen, wenn sie vom Server angefordert wird. Auf diese Weise können alle Benutzer für ihre Arbeit auf einen schnelleren und effizienteren Karten-Service zugreifen.
Gecachte Karten-Services sind auch gut skalierbar, was bedeutet, dass sie schnell auf viele gleichzeitige Treffer auf dem Server reagieren. Wenn Sie große Mengen an Benutzerverkehr erwarten, kann es hilfreich sein, den Layer zu cachen, auch wenn Sie häufige Aktualisierungen am Cache vornehmen müssen.
Wenn Sie nicht die Zeit oder den Speicherplatz haben, alle Kacheln für die Caches zu erstellen, erstellen Sie einige Kacheln vorab und den Rest bei Bedarf. Wenn der erste Client auf die Web-GIS-Anwendung zugreift, wird der Karten-Cache für den angeforderten Bereich (für einen Satz Kartenkacheln) berechnet, und der Cache wird erstellt. Alle anderen Benutzer, die die gleichen Kartenkacheln besuchen, verwenden einfach den neuen Karten-Cache. Bei jeder Anforderung eines Benutzers wird die gecachte Kartenkachel abgerufen, sofern sie vorhanden ist. Andernfalls wird die Kachel berechnet und auf der Festplatte gecacht. Nur der erste Benutzer muss die Kartenanzeige berechnen. Die anderen Benutzer können dann auf eine gecachte Karte des operationalen Layers zugreifen.
Weitere Informationen zum Erstellen gecachter Karten-Services finden Sie unter dem Thema Was ist Karten-Caching?.