Damit eine Karte im Web verfügbar ist, müssen Sie eine Karte in ArcMap erstellen, sie auf der ArcGIS-Server-Site veröffentlichen und dann den resultierenden Kartenservice in einer Client-Anwendung verwenden. Für einen Großteil der Vorgänge, die Sie mit Kartenservices ausführen können, ist in der ursprünglichen Erstellungsphase etwas Vorbereitung erforderlich. Dieses Thema umfasst Fragen in Bezug auf das Erstellen einer Karte, die Sie auf Ihrer Site veröffentlichen möchten.
Allgemeine Tipps
Die folgenden Tipps sind wichtig für alle Kartendokumente, die auf der ArcGIS for Server-Site veröffentlicht werden:
Vermeiden Sie die Verwendung von nicht alphanumerischen Zeichen (mit Ausnahme von Leerzeichen) in Datenrahmen- oder Layer-Namen. Wenn Sie einen Service veröffentlichen, werden die Datenrahmen- und Layer-Namen manchmal in URLs, Cache-Ordnernamen und Parametern für Web-Service-Anforderungen verwendet. Nicht alphanumerischen Zeichen werden in diesen Situationen möglicherweise nicht ordnungsgemäß interpretiert. Gehen Sie mit besonderer Sorgfalt vor, wenn der Service über OGC-Spezifikation bereitgestellt wird. Eine Liste der Zeichen, die niemals für WMS-Services verwendet werden sollte, finden Sie beispielsweise unter Verfügbare WMS-Service-Eigenschaften.
Entfernen Sie vertrauliche Informationen aus den Dokumenteigenschaften. ArcGIS for Server umfasst das Services-Verzeichnis, mit dem Benutzer den Inhalt des Servers durchsuchen und Metadaten zu den Services abrufen können. Auch wenn Sie vorhaben, die Services über das Services-Verzeichnis (Standardkonfiguration) öffentlich sichtbar zu machen, gibt es sicherlich einige vertrauliche Informationen im Kartendokument, die Sie geheim halten möchten. Um zu sehen, welche Informationen möglicherweise sichtbar sind, öffnen Sie das Kartendokument in ArcMap, und wählen Sie im Hauptmenü Datei > Eigenschaften des Kartendokuments aus. Wenn Sie die Karte veröffentlichen, können Sie über den Service-Editor alle Benutzernamen von Autoren, Kommentare oder anderen Informationen entfernen, die nicht sichtbar sein sollen. Sie sollten die Informationen entsprechend ändern, damit sie den Zweck und die Zielgruppe des Kartenservice widerspiegeln.
Entfernen Sie alle Kartenservice-Layer aus dem Kartendokument. Die Veröffentlichung eines Kartendokuments mit einem eingebetteten Service-Layer ist nicht zulässig.
Legen Sie ausdrücklich eine Datenrahmenhintergrundfarbe fest, statt die Standard-NULL-Hintergrundfarbe beizubehalten. Der Kartenservice behandelt die Hintergrundfarbe als transparent. Vermeiden Sie deshalb eine Farbe, die bereits an einer Stelle in der Karte vorhanden ist. Um zu vermeiden, dass weiße Flächen der Karte transparent werden, können Sie die Hintergrundfarbe auf fast weiß (Beispiel: RGB 254, 255, 255) festlegen.
Sie können die Hintergrundfarbe im Dialogfeld Eigenschaften: Datenrahmen auf der Registerkarte Rahmen festlegen.
Einrichten des Kartendokuments zum Beibehalten von Layer- und Tabellen-IDs
In früheren Versionen von ArcGIS for Server wurden die Layer- und Tabellen-IDs von Karten- und Feature-Services nach einer Änderung des Quell-Kartendokuments nicht beibehalten. Daher mussten Sie alle Client-Anwendungen aktualisieren, die Layer und Tabellen nutzten, um die aktualisierten IDs verwenden zu können. Um das Aktualisieren von Client-Anwendungen zu vermeiden, empfiehlt es sich, das Kartendokument wie nachstehend beschrieben zu konfigurieren, dass die Layer- und Tabellen-IDs beibehalten werden.
- Öffnen Sie das Quell-Kartendokument (MXD) in ArcMap.
- Klicken Sie mit der rechten Maustaste auf den gewünschten Datenrahmen, und wählen Sie Eigenschaften.
- Klicken Sie im Dialogfeld Eigenschaften: Datenrahmen auf Allgemein, und aktivieren Sie die Option Zuweisung eindeutiger numerischer IDs für die Veröffentlichung von Kartenservices zulassen.
- Klicken Sie auf OK. ArcMap weist jedem Layer und jeder Tabelle im Datenrahmen sequenzielle IDs zu.
- Bei Bedarf können Sie den Layern und Tabellen Ihre eigenen benutzerdefinierten IDs zuweisen.
- Klicken Sie im Inhaltsverzeichnis mit der rechten Maustaste auf den Layer oder die Tabelle, dem/der Sie eine benutzerdefinierte ID zuweisen möchten, und wählen Sie Eigenschaften.
- Klicken Sie im Dialogfeld Layer-Eigenschaften auf Allgemein, und weisen Sie im Feld Layer-ID den gewünschten Integer-Wert zu.
- Klicken Sie auf OK.
- Wiederholen Sie die oben genannten Teilschritte für jede/n gewünschte/n Layer oder Tabelle.
- Veröffentlichen Sie das Kartendokument oder überschreiben Sie den vorhandenen Service.
Die Layer-IDs werden jetzt nach dem Veröffentlichen beibehalten. Sie müssen nicht länger nach dem Ändern von Quell-Kartendokumenten Client-Anwendungen ändern.
Kann die Karte für eine hohe Performance gecacht werden?
Wenn die Karte Daten enthält, die sich mit großer Wahrscheinlichkeit nicht ändern, sollten Sie das Cachen der Karte für eine hohe Performance in Betracht ziehen. Wenn Sie die Karte cachen, erstellen Sie einen Satz von vorab gerenderten Kartenbildern auf bestimmten Maßstabsebenen. Das tatsächliche Caching erfolgt, nachdem Sie die Karte als Service veröffentlicht haben. Wenn Sie jedoch wissen, dass Sie die Karte cachen werden, beeinflusst dies den Kartenerstellungsprozess. Sie möchten die Karte so erstellen, dass sie bei allen Maßstäben, die Sie cachen werden, gut aussieht. Sie können alle kartografischen Werkzeuge ohne Auswirkung auf die Performance verwenden, da die gecachten Kacheln nur Bilder der Daten sind; das tatsächliche Rendering und die Label-Engines werden nach dem Erstellen des Cache nicht verwendet.
Wenn Sie die Karte nicht cachen können, beeinträchtigen das Rendering und die Label-Engines die Performance des Kartenservice. Weitere Informationen finden Sie unter Was ist Karten-Caching?.
Performance-Tipps für nicht gecachte Karten
Sie sollten immer dann einen Karten-Cache erstellen, wenn es angemessen ist. Wenn Sie jedoch große Mengen von Daten haben, die sich häufig ändern, können Sie möglicherweise keinen Karten-Cache erstellen und beibehalten. In diesem Fall können Sie anhand der folgenden Tipps die Performance der Karte verbessern. Während das Kartendokument veröffentlicht wird, haben Sie die Möglichkeit, die Karte mit dem Service-Editor zu analysieren. Auf diese Weise können Sie schnell Methoden identifizieren, mit denen Sie die Performance des Kartendokuments verbessern können.
Legen Sie maßstabsabhängiges Rendering für Daten-Layer fest – Verwenden Sie maßstabsabhängiges Rendering, um sicherzustellen, dass nicht benötigte Layer nicht gezeichnet werden, wenn die Anzeige der Karte verkleinert wird. Datenintensive oder ausführliche Layer sind möglicherweise nur dann besser geeignet, wenn die Karte auf einen größeren Maßstab vergrößert wird.
Entfernen Sie nicht verwendete Layer und Datenrahmen – Überprüfen Sie das Seitenlayout und die Datenansichten, und stellen Sie sicher, dass das Kartendokument keine Datenrahmen und Layer aufweist, die nicht dem Zweck der Karten dienen. Wenn die Seitenlayout-Ansicht beispielsweise Datenrahmen enthält, die in keiner Anwendung angezeigt werden, die den Service verwendet, entfernen Sie die Datenrahmen.
Verwenden Sie Definitionsabfragen angemessen – Eine Definitionsabfrage kann als Filter fungieren, um die Datenmenge in der Karte einzuschränken und zu bewirken, dass sie schneller gezeichnet wird. Wenn Sie beispielsweise eine Karte eines Bundeslandes zeichnen und die Feature-Class Daten für das gesamte Land enthält, können Sie mithilfe einer Definitionsabfrage nur die Features anzeigen, die innerhalb der Grenzen des Bundeslandes liegen. Beachten Sie, dass einige komplexe Abfragen eine negative Auswirkung auf die Performance haben können.
Vereinfachen Sie die Layer-Symbolisierung – Das Zeichnen von komplexen Symbolen kann viel länger dauern als das Zeichnen von einfachen Symbolen. Verwenden Sie, wenn möglich, einfache Linien- und Füllsymbole, und vermeiden Sie Symbolisierung, die mehrere Layer, komplizierte Strichmuster, Querstriche oder Umrisse enthält. Die Darstellungs-Performance kann auch durch Symbole für Straßenschilder beeinträchtigt werden.
Wenn Sie ein Bildfüllsymbol verwenden, können Sie die Performance durch Verwendung einer EMF-Datei anstelle einer BMP-Datei verbessern.
Eine einfache Möglichkeit zur Vereinfachung einiger Symbole in der Karte besteht darin, den Style "ESRI_Optimized" zu verwenden. Dieser Style enthält sowohl Liniensymbole als auch Füllsymbole, die eine bessere Performance bieten und trotzdem ähnlich wie die entsprechenden Symbole im Esri Standard-Style dargestellt werden. Unter Organisieren von Style-Inhalten in der ArcGIS-Hilfe finden Sie weitere Informationen zur Verwendung dieses Styles.
Wenn Sie einen gecachten Kartenservice erstellen, wirkt sich das Vereinfachen der Karte nicht auf die Geschwindigkeit der Bereitstellung der fertigen Karte aus; es wirkt sich nur auf die Geschwindigkeit der Cache-Erstellung aus. Wenn der Cache in einem angemessenen Zeitrahmen erstellt wird, müssen Sie sich möglicherweise keine Gedanken über die Symbolvereinfachung machen.
Verwenden Sie Annotationen statt Beschriftungen – Da der Computer bei Beschriftungen Entscheidungen im Hinblick auf die Platzierung treffen muss, ist die Verwendung eines Annotationen-Layers in der Regel schneller.
Vereinfachen Sie Beschriftungen – Wenn die Karte Beschriftungen enthält, verwenden Sie Gewichtungen für Konflikte zwischen Beschriftungen und Features sparsam. Die Performance wird auch durch Halos, Versätze und andere Beschriftungseffekte beeinträchtigt.
Legen Sie maßstabsabhängiges Rendering für Daten-Layer fest – Wenn die Anzeige einer Karte verkleinert wird, müssen mehr Beschriftungen gezeichnet werden. Dies nimmt Zeit in Anspruch. Untersuchen Sie das Kartendokument, und ermitteln Sie, ob einige Beschriftungen bei einem kleineren Maßstab möglicherweise nicht gezeichnet werden müssen.
Verwenden Sie dasselbe Koordinatensystem für die Daten und die Karte – Wenn die Quelldaten und das Kartendokument unterschiedliche Koordinatensysteme aufweisen, müssen die Daten on-the-fly projiziert werden; dadurch wird die Performance beeinträchtigt. Verwenden Sie für optimale Performance dasselbe Koordinatensystem sowohl für die Daten als auch für das Kartendokument. Wenn dies nicht möglich ist, stellen Sie sicher, dass entsprechende geographische Transformationen auf die Layer angewendet werden, die on-the-fly projiziert werden müssen.
Passen Sie die Länge der Zeit, die der Browser eine Antwort im Cache verwendet, an – Wenn die Karte in einem Webbrowser betrachtet wird, wird die Kartenbildantwort vom Server vom Browser gecacht und für einen bestimmten Zeitraum wiederverwendet. Abhängig davon, wie der Kartenservice und die ihm zugeordneten Daten in Anwendungen verwendet werden, können Sie die Länge des Zeitraums anpassen, den der Browser eine Antwort in seinem Cache verwendet. Vollständige Informationen finden Sie im Abschnitt Verbessern der Darstellungs-Performance von Kartenservices unten.
Verbessern der Darstellungs-Performance von Kartenservices
Wenn Clients Anforderungen an den ArcGIS-Server senden, um einen Kartenservice anzuzeigen, wird die Antwort vom Server normalerweise vom Browser gecacht und für einen bestimmten Zeitraum wiederverwendet. Dieses Verhalten unterstützt den ArcGIS-Server dabei, die bestmögliche Darstellungs-Performance für Ihren Kartenservice zu erzielen. Abhängig davon, wie der Kartenservice und die ihm zugeordneten Daten in Anwendungen verwendet werden, können Sie die Länge des Zeitraums anpassen, den der Browser eine Antwort in seinem Cache verwendet. Dies können Sie erreichen, indem Sie eine Eigenschaft mit dem Namen cacheControlMaxAge zur JavaScript Object Notation (JSON) des Service hinzufügen.
Verwendung der cacheControlMaxAge-Eigenschaft
ArcGIS-Server-Kartenservice-Antworten enthalten ein Entitätstag (ETag) und einen Cache-Control-Header. Der ETag-Header-Wert ist eine eindeutige Kennung der Antwort. Der Cache-Control-Header verfügt über einen max-age-Wert, der Informationen zum Browser bezüglich des maximalen Zeitraums, den eine Antwort aus dem Browser-Cache wiederverwendet werden kann. Dieser Wert wird von der Eigenschaft cacheControlMaxAge festgelegt.
Wenn eine Anforderung wiederholt wird und das maximale Alter des Cache nicht überschritten wurde, verwendet der Browser die gecachte Antwort, ohne die Anforderung an den Server zu senden. Wenn das maximale Alter überschritten wurde, muss der Browser die Anforderung an den Server senden und einen IF-NONE-MATCH-Header mit zugeordnetem ETag-Wert festlegen, der der Antwort im Cache entspricht. Der ArcGIS-Server wertet die Anforderung aus und bestimmt anhand des ETag-Wertes, ob die Antwort sich geändert hat. Wenn sich die Antwort vom Server von der Kopie im Browser unterscheidet, sendet der Server eine vollständig neue Antwort an den Browser. Wenn die Antwort mit der Kopie im Browser identisch ist, benachrichtigt der Server den Browser, dass die Antwort im Cache weiter verwendet werden soll.
Definieren des Wertes der cacheControlMaxAge-Eigenschaft
Als ArcGIS-Server-Administrator können Sie die cacheControlMaxAge-Eigenschaft definieren, um anzugeben, wie lange ein Browser eine gecachte Antwort verwenden darf. Da der ArcGIS-Server nicht immer eine vollständige Antwort senden muss, kann der Browser-Cache effizienter verwendet werden, Ihre Anwendungen werden optimiert und es wird Netzwerkbandbreite gespart.
Der Standardwert für Kartenservices ist 0. Dies bedeutet, der Browser sendet eine Anforderung immer erneut, und der ArcGIS-Server verarbeitet die Anforderung und sendet eine vollständige Antwort an den Browser, wenn sich der Inhalt geändert hat. Dieser Wert eignet sich für die meisten Anwendungen.
Für Kartenservices mit regelmäßig wechselnden Datasets oder regelmäßig wechselnder Symbolisierung empfiehlt sich ein Wert von etwa 5 Minuten (300 Sekunden). In Anwendungen mit Animationen oder Zeitdaten sollten Sie den Wert hochsetzen, um eine reibungslosere Animation in der Anwendung zu ermöglichen.
Gehen Sie wie folgt vor, um die cacheControlMaxAge-Eigenschaft zu Ihrem Service hinzuzufügen und ihren Standardwert anzugeben:
- Öffnen Sie ArcGIS Server Administrator Directory in einem Web-Browser, und melden Sie sich als Benutzer an, dem Administratorberechtigungen zugewiesen sind. Die URL hat das Format http://gisserver.domain.com:6080/arcgis/admin.
- Klicken Sie auf Services, und wählen Sie den Kartenservice, den Sie ändern möchten, aus der Liste Services aus. Wenn der Service nicht in der Liste angezeigt wird, befindet er sich möglicherweise in einem Verzeichnis unterhalb des Stammordners.
- Führen Sie auf der Seite Service - <Service-Name> (<service type>) einen Bildlauf bis zum unteren Rand aus, und klicken Sie auf edit.
- Suchen Sie im Dialogfeld Service-Eigenschaften den Abschnitt "properties" des Service-JSON.
- Fügen Sie dem Abschnitt die cacheControlMaxAge-Eigenschaft hinzu und geben Sie den Wert (in Sekunden) für die Eigenschaft an, zum Beispiel:
"properties": { "cacheControlMaxAge": "300",
- Klicken Sie auf Save Edits.
- Stellen Sie auf der Seite Service - <Service-Name> (<Service-Typ>) sicher, dass die cacheControlMaxAge-Eigenschaft und der Wert, den Sie dafür angegeben haben, im Abschnitt Eigenschaften angezeigt werden.
Werden Sie eine Netzwerkanalyse mit dieser Karte auf dem Server ausführen?
Wenn Sie diese Karte für eine Netzwerkanalyse auf dem Server verwenden werden, müssen Sie einen Netzwerkanalyse-Layer einschließen, der auf ein Netzwerk-Dataset verweist. Wenn Sie den Kartenservice veröffentlichen, haben Sie die Möglichkeit, die Funktion Netzwerkanalyse zu aktivieren. Dadurch wird ein Web-Service zum Ausführen der Netzwerkanalyse-Tasks in der Karte erstellt.