Skip To Content

Veröffentlichen von gehosteten Kachel-Layern

Kachel-Layer, die in Ihrem Portal veröffentlicht und gehostet werden, unterstützen die schnelle Visualisierung großer Datasets mithilfe einer Sammlung vorab gezeichneter Kartenbilder bzw. Kacheln. Gehostete Kacheln stellen geographischen Kontext für operationale Layer zur Verfügung. Sie können z. B. Kacheln von Straßen der Umgebung einschließen, um eine visuelle Referenz für die Straßenschilder im Feature-Layer bereitzustellen.

Sie können einen Kachel-Layer veröffentlichen, der mit einer der folgenden Methoden in Ihrem Portal gehostet werden soll:

Sie können für Ihre Kacheln automatisch bei der Veröffentlichung oder danach manuell einen Cache erstellen. Weitere Informationen finden Sie unter Empfehlungen für Kachel-Caches.

Um eine Karte oder eine Service-Definitionsdatei als gehosteten Kachel-Layer zu veröffentlichen, müssen Sie über Berechtigungen zum Erstellen von Inhalten und zum Veröffentlichen gehosteter Kachel-Layer verfügen.

Definieren und Veröffentlichen einer Karte in ArcMap

In ArcMap können Sie einen Kachel-Layer veröffentlichen, der in Ihrem Portal gehostet werden soll.

Stellen Sie sicher, dass ArcGIS Desktop mit Ihrem Portal verbunden ist, bevor Sie ArcMap starten.

  1. Starten Sie ArcMap, und öffnen Sie die Karte, die Sie veröffentlichen möchten.
  2. Melden Sie sich bei Ihrem Portal mit einem Konto an, dem Berechtigungen zum Erstellen von Inhalten und zum Veröffentlichen gehosteter Kachel-Layer zugewiesen sind.
    1. Klicken Sie auf Datei > Anmelden.
    2. Geben Sie Ihren Benutzernamen und Ihr Kennwort für Ihr Portal ein, und klicken Sie auf Anmelden.
  3. Veröffentlichen Sie jetzt die Karte.
  4. Klicken Sie auf Datei > Freigeben als > Service.
  5. Wählen Sie Service veröffentlichen, und klicken Sie auf Weiter.
    Vorsicht:

    Wenn Sie den Service stattdessen überschreiben möchten, wird die vorhandene Kartenkachel aus dem Portal gelöscht und ein neues Element mit demselben Namen erstellt. Das neue Element wird im Stammordner erstellt und ihm wird eine neue ID zugewiesen. Sie müssen die Freigabe neu konfigurieren und das Element bei Bedarf zurück in den Ordner verschieben, in dem es sich vor der erneuten Veröffentlichung befand.

  6. Wählen Sie in der Dropdown-Liste der Verbindungstypen den Eintrag Eigene gehostete Services aus. Geben Sie dann einen Namen für die Kacheln ein, und klicken Sie auf Weiter.
  7. Legen Sie die gewünschten Eigenschaften im Fenster Service-Editor fest. Hier können Sie angeben, auf welche Weise Benutzer die Kacheln verwenden können. Außerdem können Sie ganz genau festlegen, wie sie vom Server bereitgestellt werden.

    Weitere Informationen dazu, wie Sie die Kacheln optimal für die Bereitstellung konfigurieren, finden Sie in der ArcGIS Server-Hilfe unter Optimieren und Konfigurieren von Services. Einige der in diesem Thema genannten Eigenschaften gelten nur für ArcGIS Server und nicht für die Arbeit mit gehosteten Kachel-Layern.

    Tipp:

    Wenn Sie den Service-Editor während dieser Sitzung schließen, werden Sie aufgefordert, Ihre Arbeit als Entwurf zu speichern. Dies ermöglicht Ihnen, Ihre Arbeit an der Service-Konfiguration später wieder aufzunehmen. Service-Entwürfe werden standardmäßig im Ordner Entwürfe der Verbindung mit "Eigene gehostete Karten" gespeichert. Weitere Informationen finden Sie in der ArcGIS Server-Hilfe unter Service-Entwürfe.

  8. Sie müssen einige Eigenschaften festlegen, die für in ArcGIS Online gehostete Kachel-Layer spezifisch sind. Diese werden in den folgenden Abschnitten beschrieben.
  9. Klicken Sie im linken Service-Editor-Bereich auf Funktionen, und aktivieren Sie Gekachelte Karte, um die Karte als Kachel-Layer verfügbar zu machen. Aktivieren Sie die Option Feature-Zugriff, um einen Feature-Layer mit Ihren Kacheln zu veröffentlichen, falls Sie Pop-ups für den Layer konfigurieren möchten, wenn Sie ihn zu Map Viewer hinzufügen.

    Sie können auf das Unterelement Gekachelte Karte im linken Bereich des Service-Editors klicken, um erweiterte Eigenschaften zu den Funktionen veröffentlichter Kachel-Layer für Clients festzulegen.

  10. Klicken Sie auf das Element Caching, um Eigenschaften für den Kachel-Cache festzulegen. Ausführliche Informationen finden Sie in der ArcGIS Server-Hilfe unter Erstellen eines Karten-Cache. Beachten Sie jedoch, dass einige erweiterte Caching-Einstellungen nur bei direkten Veröffentlichungen in ArcGIS Server verfügbar sind.
  11. Klicken Sie im linken Service-Editor-Bereich auf Elementbeschreibung, und geben Sie eine Zusammenfassung und Tags für den Kachel-Layer ein. Diese Informationen müssen Sie vor dem Veröffentlichen eingeben. Weitere Informationen finden Sie im Abschnitt Elementbeschreibung der ArcGIS Server-Hilfe.
  12. Klicken Sie im linken Bereich von Service-Editor auf Freigeben, und legen Sie fest, für wen der gehostete Kachel-Layer freigegeben werden soll. Der gehostete Kachel-Layer wird standardmäßig nur für Eigene Inhalte freigegeben, d. h. er ist nur für Sie zugänglich. Der Kachel-Layer kann immer in Eigene Inhalte angezeigt werden, Sie können ihn jedoch auch für alle Benutzer, Mitglieder Ihrer Organisation oder nur für Mitglieder bestimmter Gruppen freigeben.
  13. Klicken Sie im Service-Editor auf Analysieren Analysieren (Werkzeug).

    Daraufhin wird die Karte geprüft, um festzustellen, ob sie veröffentlicht werden kann. Vor der Veröffentlichung müssen Sie alle Fehler Fehler im Fenster Vorbereiten beheben. Sie können optional die Warnungen und Informationsmeldungen korrigieren, um die Performance und Darstellung der veröffentlichten Kacheln zu verbessern. Weitere Informationen zum Beheben dieser Probleme finden Sie in der ArcGIS Server-Hilfe unter Analysieren der GIS-Ressource.

  14. Klicken Sie im Service-Editor optional auf Vorschau Vorschau. Dies kann Ihnen eine Vorstellung davon geben, wie der Kachel-Layer im Internet angezeigt wird.
  15. Nachdem Sie die Fehler korrigiert und optional auch die Vorschläge aus Warnungen und Informationsmeldungen eingearbeitet haben, klicken Sie auf Veröffentlichen Veröffentlichen.
    Hinweis:

    Ihre Daten werden nun auf den Server kopiert. Die zur Veröffentlichung benötigte Zeit hängt von der Datengröße sowie der Bandbreite und Geschwindigkeit der Netzwerkverbindung ab. Sie sollten auch etwas Zeit zum Generieren der Kacheln reservieren.

Sobald der Kachel-Layer in Ihrem Portal veröffentlicht und gehostet wurde, wird er beim Einblenden des Knotens Eigene gehostete Services im Fenster Katalog angezeigt.

Auf der Seite Eigene Inhalte der Portal-Website wird der gehostete Kachel-Layer als zwei unabhängige Elemente aufgeführt: als Kacheln und als Service-Definition. Bei einer Service-Definition handelt es sich um eine ZIP-Datei, welche die Karte, deren Daten sowie Details zur Art der Veröffentlichung der Kacheln enthält. Eine Service-Definition kann auf jeden Computer mit ArcGIS Server übertragen und dort veröffentlicht werden.

Definieren und Veröffentlichen einer Karte in ArcGIS Pro

Über eine Karte in ArcGIS Pro können Sie einen Kachel-Layer veröffentlichen, der in Ihrem Portal gehostet werden soll.

Beachten Sie auch, dass Webbrowser einige der komplexeren kartografischen Symbole, die Sie ursprünglich beim Erstellen der Karte verwendet haben, nicht anzeigen können. Die meisten Symboltypen sind verfügbar, in einigen Fällen werden die Symbole beim Veröffentlichen jedoch möglicherweise herabgesetzt. Lesen Sie in der Hilfe zu ArcGIS Server unter Erstellen von Feature-Services nach, welche Symbole unterstützt werden, und nehmen Sie vor dem Veröffentlichen alle erforderlichen Änderungen an der Kartensymbolisierung vor.

  1. Starten Sie ArcGIS Pro, und öffnen Sie das Projekt, das die Karte enthält, die Sie veröffentlichen möchten.
  2. Stellen Sie sicher, dass die Portalverbindung aktiviert ist, und melden Sie sich mit einem Konto bei Ihrer Organisation an, das über Berechtigungen zum Erstellen von Inhalten und Veröffentlichen von gehosteten Kachel-Layern verfügt.
  3. Sie haben folgende Möglichkeiten, einen Kachel-Layer zu veröffentlichen:
    • Wählen Sie die Layer im Bereich Inhalt aus. Klicken Sie mit der rechten Maustaste auf die Auswahl, klicken Sie danach auf Als Web-Layer freigeben.
    • Klicken Sie zum Veröffentlichen aller Layer in der Karte auf Web-Layer in der Gruppe Freigeben als auf der Registerkarte Freigabe, und klicken Sie dann auf Web-Layer veröffentlichen.

    Tipp:

    Wenn die Menüoption Als Web-Layer freigeben nicht aktiv ist, kann dies eine der folgenden Ursachen haben:

    • Dem Konto, mit dem Sie sich angemeldet haben, sind keine Berechtigungen zum Veröffentlichen gehosteter Layer zugewiesen.
    • Ihr Portal ist nicht mit einem Hosting-Server konfiguriert, der zum Hosten von Web-Layern erforderlich ist.
    • Sie versuchen, einen Multipatch-Layer zu veröffentlichen. Dieser Vorgang wird nicht unterstützt.

  4. Geben Sie einen Namen für den Kachel-Layer ein. Der Layer wird standardmäßig unter Eigene Inhalte gespeichert. Sie können in einem Ordner unter Eigene Inhalte speichern, indem Sie den Ordnernamen eingeben oder zu einem vorhandenen Ordner navigieren.
  5. Wählen Sie Alle Daten kopieren aus.
  6. Wählen Sie Kachel als Layer-Typ aus.

    Dadurch werden andere Layer-Typ-Optionen deaktiviert, da beim Kopieren von Daten nur jeweils eine Option ausgewählt sein kann.

  7. Stellen Sie eine Zusammenfassung und Tags für den Titel-Layer bereit.
  8. Legen Sie fest, wie der Kachel-Layer freigegeben werden soll. Alle Layer, die Sie veröffentlichen, werden automatisch für Ihren persönlichen Workspace in Ihrer Organisation (Eigene Inhalte) freigegeben. Andere Benutzer können erst auf Ihre Inhalte zugreifen, wenn Sie sie mindestens für einen der folgenden Benutzer freigeben:
    • Der Name Ihres Portals: Durch Auswahl dieser Option kann der Layer für alle authentifizierten Benutzer im Portal freigegeben werden.
    • Alle: Durch Auswahl dieser Option wird der Layer für jeden verfügbar gemacht, der Zugriff auf Ihr Portal hat.
    • Gruppen: Sie können den Layer für Mitglieder von Gruppen freigeben, denen Sie angehören.
  9. Klicken Sie auf Konfiguration und dann auf die Schaltfläche Web-Layer-Eigenschaften konfigurieren, um die Cache-Einstellungen festzulegen.
  10. Wählen Sie ein Kachelschema aus.
  11. Ändern Sie die Größe des Balkens Detaillierungsebenen, um den minimalen und maximalen Maßstab für den Kachel-Layer anzugeben.

    Die geschätzte Größe des resultierenden Cache ändert sich, wenn Sie den minimalen und maximalen Maßstab ändern.

  12. Legen Sie fest, wann und wo der Kachel-Cache erstellt werden soll.
    • Wählen Sie Automatisch auf dem Server cachen, wenn die Kacheln beim Veröffentlichen des Layers auf dem Hosting-Server des Portals erstellt werden sollen.
    • Wenn der Cache auf dem Hosting-Server des Portals erstellt und gespeichert werden soll, sie ihn jedoch nach dem Veröffentlichen selbst erstellen möchten, wählen Sie Manuell auf dem Server cachen aus, öffnen Sie den Kachel-Layer auf der Portal-Website, nachdem der Layer veröffentlicht wurde, und erstellen Sie den Cache manuell.
    • Wählen Sie Lokal cachen aus, und geben Sie einen Speicherort auf dem ArcGIS Pro-Computer an, um ein vorübergehendes Kachelpaket zu speichern, wenn der Cache auf dem ArcGIS Pro-Computer erstellt und gepackt werden soll. Das Kachelpaket wird zum Entpacken automatisch auf den Hosting-Server des Portals hochgeladen und der Cache wird dort gespeichert.
  13. Um Benutzern das Herunterladen von Karten-Kacheln für die Offline-Verwendung zu ermöglichen, aktivieren Sie das Kontrollkästchen Für Clients das Exportieren von Cache-Kacheln zulassen.
  14. Wenn Sie das Kontrollkästchen Für Clients das Exportieren von Cache-Kacheln zulassen aktiviert haben, verwenden Sie das Feld Export beschränken auf, um die maximale Anzahl von Kacheln festzulegen, die Clients gleichzeitig offline nehmen können.
  15. Klicken Sie auf die Registerkarte Inhalt, um zu bestätigen, dass der Kachel-Layer die gewünschten Daten-Layer enthält.
  16. Klicken Sie auf Analysieren, um eine Überprüfung auf Fehler oder Probleme durchzuführen.

    Falls Probleme erkannt werden, werden sie auf der Registerkarte Meldungen aufgelistet. Wenn Sie mit der rechten Maustaste auf die einzelnen Meldungen klicken, erhalten Sie weitere Informationen zu den Fehlern bzw. Warnungen und können auf die vorgeschlagenen Korrekturen klicken. Vor dem Veröffentlichen müssen die Fehler behoben werden. Sie können optional die Warnungen korrigieren, um die Performance und Darstellung des gehosteten Kachel-Layers zu verbessern.

  17. Sobald Sie die Fehler und optional auch etwaige Warnungen behoben haben, klicken Sie auf Veröffentlichen.
    Hinweis:
    Ihre Daten werden nun auf den Server kopiert. Die zur Veröffentlichung benötigte Zeit hängt von der Datenmenge sowie der Netzwerkgeschwindigkeit und Bandbreite ab.

Nach der Veröffentlichung können Sie auf Web-Layer verwalten klicken, um die Portal-Website zu öffnen.

Erstellen und Freigeben eines Kachelpakets in ArcMap und Veröffentlichen des Kachelpakets

Mit ArcMap können Sie Kacheln für ein Kartendokument erstellen und diese in einer Kachelpaketdatei (.tpk) speichern, die auf einfache Weise übertragen werden kann. Sie können ein Kachelpaket in ArcMap erstellen, in Ihrem Portal freigeben und es als gehosteten Kachel-Layer veröffentlichen.

Nachfolgend werden zwei verschiedene Workflows beschrieben. Der erste kann für kleine bis mittelgroße Kachelpakete verwendet werden, wobei Elemente des Kartendokuments wie die Legende und Textelemente beibehalten werden, wenn die Kacheln aus dem Kachelpaket veröffentlicht werden. Der zweite Workflow wird für die Veröffentlichung großer Kachelpakete empfohlen, die Daten werden jedoch nur dann beibehalten, wenn Kacheln aus dem Kachelpaket veröffentlicht werden.

Führen Sie die folgenden Schritte aus, um ein kleines bis mittelgroßes Kachelpaket zu veröffentlichen:

  1. Öffnen Sie Ihre Karte in ArcMap.
  2. Melden Sie sich bei Ihrem Portal mit einem Konto an, dem Berechtigungen zum Erstellen von Inhalten und zum Veröffentlichen gehosteter Kachel-Layer zugewiesen sind.
  3. Klicken Sie auf Anpassen > ArcMap-Optionen > Freigeben, und stellen Sie sicher, dass ArcGIS Runtime-Werkzeuge aktivieren aktiviert ist.

    Dadurch wird die Menüoption aktiviert, die Sie im nächsten Schritt verwenden.

  4. Klicken Sie in ArcMap auf Datei > Freigeben als > Kachelpaket.
  5. Konfigurieren Sie alle Einstellungen in den folgenden Teilschritten. Sie können optional auch andere Einstellungen vornehmen.
    1. Wählen Sie auf der Registerkarte Kachelpaket die Option Paket in mein ArcGIS Portal-Konto hochladen aus.
    2. Wählen Sie auf der Registerkarte Kachelformat ArcGIS Online / Bing Maps / Google Maps als Kachelschema aus.
    3. Geben Sie auf der Registerkarte Elementbeschreibung die als erforderlich gekennzeichneten Elemente an.
    4. Auf der Registerkarte Freigeben können Sie das Paket für die Öffentlichkeit oder für bestimmte Gruppen freigeben.
  6. Klicken Sie auf Freigeben.

    Möglicherweise werden Sie aufgefordert, die Karte zu speichern, bevor das Kachelpaket erstellt werden kann.

    Die Erstellung eines Kachelpakets kann insbesondere dann einige Zeit in Anspruch nehmen, wenn Sie große Maßstäbe einbezogen haben.

  7. Nachdem das Kachelpaket erstellt wurde, melden Sie sich bei Ihrem Portal mit demselben Konto an, das Sie zum Erstellen des Kachelpakets in ArcMap verwendet haben, und klicken auf Eigene Inhalte.
  8. Klicken Sie auf das Kachelpaket, um dessen Elementdetailseite anzuzeigen.
  9. Klicken Sie auf Veröffentlichen.
  10. Geben Sie einen Titel und Tags ein, und klicken Sie auf Veröffentlichen.

Die Kacheln werden entpackt und ein gehosteter Kachel-Layer wird in Ihrem Portal erstellt. Sie sollten die Kartenkacheln in Eigene Inhalte anzeigen können.

Um große Kachelpakete zu erstellen und freizugeben, empfiehlt Esri, das Toolset Kachel-Cache anstelle des vorherigen Workflows zu verwenden. Diese Werkzeuge können mehrere Prozessorkerne nutzen.

Führen Sie diese Werkzeuge in der folgenden Reihenfolge aus:

  1. Führen Sie Kachelschema für Kachel-Cache erstellen aus, um das Kachelungs-Raster und das Bildformat zu definieren.
  2. Führen Sie Kachel-Cache verwalten aus, um die Kacheln zu erstellen.
  3. Führen Sie Kachel-Cache exportieren aus, um das Kachelpaket zu erstellen.
  4. Führen Sie Paket freigeben (im Toolset Paket) aus, um die Kacheln in Ihr Portal hochzuladen.

Beachten Sie, dass Sie einen Feature-Layer mit dem gehosteten Kachel-Layer angeben müssen, wenn Sie Pop-ups konfigurieren möchten.

Erstellen Sie ein Kachelpaket in ArcGIS Pro, und laden Sie es in Ihre Organisation hoch.

Verwenden Sie das Geoverarbeitungswerkzeug Kartenkachelpaket erstellen, um ein Kartenkachelpaket zu erstellen, das Paket zu Ihrer Organisation hinzuzufügen und ein Kachel-Layer zu veröffentlichen.

  1. Öffnen Sie das Projekt, das die Daten enthält, die Sie packen möchten.
  2. Öffnen Sie das Geoverarbeitungswerkzeug Kartenkachelpaket erstellen, und führen Sie es aus.
  3. Wenn die Erstellung des Kachelpakets abgeschlossen ist, melden Sie sich bei Ihrem Portal mit einem Konto an, das über Berechtigungen zum Erstellen von Inhalten und zum Veröffentlichen von gehosteten Kachel-Layern verfügt, und klicken Sie dann auf Eigene Inhalte.
  4. Fügen Sie das Kachelpaket mit Von meinem Computer hinzu.
  5. Aktivieren Sie das Kontrollkästchen Diese Datei als gehosteten Layer veröffentlichen.
  6. Geben Sie einen Titel und Tags ein, und klicken Sie auf Element hinzufügen.

Die Kacheln werden entpackt und ein gehosteter Kachel-Layer wird in Ihrem Portal erstellt. Sie sollten die Kartenkacheln und das Kachelpaket in Eigene Inhalte sehen können.

Veröffentlichen über einen gehosteten Feature-Layer

Sie können einen gehosteten Kachel-Layer in Ihrem Portal unter Verwendung eines vorhandenen gehosteten Feature-Layers in Ihrem Besitz veröffentlichen, wenn der Hosting-Server Ihres Portals einen über ArcGIS Data Store erstellten Data Store vom Typ "Relational" verwendet. Dieser Workflow eignet sich sehr gut zur Visualisierung umfangreicher Datasets.

Hinweis:

  • Bearbeitungen an räumlichen Attributen, die an dem gehosteten Feature-Layer vorgenommen werden, werden nicht automatisch auf den gehosteten Kachel-Layer angewendet. Sie müssen den gehosteten Kachel-Layer erneut aus dem aktualisierten gehosteten Feature-Layer veröffentlichen.
  • Für den gehosteten Feature-Layer bestehen Beschränkungen hinsichtlich des Stylings, die sich möglicherweise hinderlich auf die Veröffentlichung eines gehosteten Kachel-Layers auswirken könnten.
  • Die Veröffentlichung eines gehosteten Kachel-Layers aus einem Multipatch- oder gehosteten Punktwolken-Feature-Layer ist nicht möglich.

Führen Sie die folgenden Schritte aus, um einen gehosteten Kachel-Layer aus einem gehosteten Feature-Layer zu veröffentlichen:

  1. Melden Sie sich mit einem Konto an, dem Berechtigungen zum Veröffentlichen von gehosteten Kachel-Layern zugewiesen sind, und klicken Sie auf Eigene Inhalte.
  2. Führen Sie zum Veröffentlichen eine der folgenden Aktionen aus:
    • Klicken Sie auf den gehosteten Feature-Layer, der veröffentlicht werden soll, und klicken Sie auf Veröffentlichen.
    • Klicken Sie auf Erstellen > Kachel-Layer, und wählen Sie einen Feature-Layer aus, der als Kacheln veröffentlicht werden soll.
  3. Geben Sie einen Titel, Tags und eine Zusammenfassung ein, und wählen Sie einen Ordner für den gehosteten Kachel-Layer aus.
  4. Ändern Sie optional die Ausdehnung, mit der der Layer angezeigt wird, indem Sie an den Endpunkten des Sichtbarkeitsbereichs ziehen.
    Vorsicht:

    In Portal for ArcGIS wird ein Maßstabsbereich vorgeschlagen, den Sie jedoch ändern können. Beachten Sie jedoch, dass die Einbeziehung großer Maßstäbe in den Maßstabsbereich die auf dem Server verbrauchten Ressourcen stark erhöhen kann. Erstellen Sie keine Kacheln, die über die Genauigkeit Ihrer Daten hinausgehen.

  5. Klicken Sie auf OK.

    Der gehostete Kachel-Layer wird erstellt, und seine Elementseite wird angezeigt.

Veröffentlichen aus einer Service-Definitionsdatei

Die Veröffentlichung von Kacheln und die Erstellung eines Cache kann viele Serverressourcen in Anspruch nehmen. Wenn Sie eine große Anzahl von Kachel-Layern veröffentlichen müssen, können Ihre Kartenautoren Service-Definitionsdateien (.sd) in ArcMap erstellen, die alle Informationen enthalten, die zum Veröffentlichen eines Kachel-Layers im Portal erforderlich sind. Anschließend können Sie ein Skript verwenden, um die Service-Definitionsdateien nach Geschäftsschluss in Ihr Portal hochzuladen und zu veröffentlichen. Die resultierenden Kachel-Layer werden auf dem Hosting-Server des Portals gehostet.

Erstellen einer Service-Definitionsdatei

Der Kartenautor sollte diese Schritte ausführen, um eine Service-Definitionsdatei mit den Daten und der Symbolisierung zu erstellen, die für einen vom Portal gehosteten Kachel-Layer erforderlich sind.

  1. Starten Sie ArcMap, und melden Sie sich beim Portal an.
  2. Erstellen und speichern Sie eine Karte.

    Weitere Informationen zum Erstellen und Veröffentlichen einer Karte finden Sie in den Themen zu Kartenservices in der Hilfe zu ArcGIS Server.

  3. Erstellen Sie jetzt eine Service-Definitionsdatei.
  4. Klicken Sie auf Datei > Freigeben als > Service.
  5. Wählen Sie Service-Definitionsdatei speichern aus, und klicken Sie auf Weiter.
  6. Klicken Sie auf Verbindung auswählen, und wählen Sie den Eintrag Eigene gehostete Services aus der Dropdown-Liste aus.
  7. Geben Sie einen Namen für die Datei ein, und klicken Sie auf Weiter.
  8. Geben Sie an, in welchem Verzeichnis auf dem Client-Computer die Service-Definitionsdatei erstellt werden soll, und klicken Sie auf Weiter.

    Der Service-Editor wird geöffnet.

  9. Klicken Sie im linken Service-Editor Bereich auf Caching.
  10. Wählen Sie ein Kachelschema aus.
  11. Wählen Sie die minimalen und maximalen Maßstäbe für die Kacheln und die Option Cache-Größe berechnen aus.
  12. Klicken Sie auf Cache manuell erstellen, nachdem der Service veröffentlicht wurde.
  13. Sie können auch auf Erweiterte Einstellungen klicken und zusätzliche Cache-Einstellungen für den Kachel-Cache festlegen.
  14. Klicken Sie im linken Service-Editor-Bereich auf Elementbeschreibung, und stellen Sie Informationen für den Kachel-Layer bereit.

    Sie müssen mindestens eine Zusammenfassung und Tags eingeben, bevor Sie die Service-Definitionsdatei erstellen.

  15. Klicken Sie auf Analysieren Analysieren (Werkzeug), um sicherzustellen, dass keine Fehler vorliegen.

    Sie müssen alle Fehler beheben, bevor Sie die Service-Definitionsdatei bereitstellen können. Sie können auch Korrekturen an zurückgegebenen Warnungen und Meldungen vornehmen.

  16. Sobald Sie die Fehler und optional auch etwaige Warnungen und Meldungen behoben haben, klicken Sie auf Bereitstellen Phase.

Die Service-Definitionsdatei wird am angegebenen Speicherort gespeichert.

Laden und Veröffentlichen der Service-Definition

Nachdem Sie die Service-Definitionsdatei vom Autor erhalten haben, können Sie sie manuell in Eigene Inhalte Ihres Portals hochladen und einen Kachel-Layer veröffentlichen oder ein Skript zum Hochladen und Veröffentlichen der Datei planen.

Manuelles Hochladen und Veröffentlichen

Melden Sie sich bei der Portal-Website an, um die Service-Definitionsdatei zu Ihrem Portal hinzuzufügen und dort zu veröffentlichen.

  1. Melden Sie sich als Mitglied mit Berechtigungen zum Erstellen von Inhalten und Veröffentlichen von gehosteten Kachel-Layern bei Ihrem Portal an, und öffnen Sie Eigene Inhalte.
  2. Klicken Sie auf Element hinzufügen.
  3. Wählen Sie aus, dass die Datei vom Computer geladen werden soll.
  4. Klicken Sie auf die Schaltfläche "Durchsuchen", und wählen Sie die Service-Definitionsdatei aus.
  5. Aktivieren Sie Diese Datei als Feature-Service veröffentlichen.
  6. Geben Sie durch Kommas getrennte Tag-Begriffe ein.

    Tags sind Wörter oder kurze Wortgruppen, die das Element beschreiben und dazu beitragen, dass es besser gefunden wird. Länder Code wird als ein Tag, Länder, Code hingegen als zwei Tags betrachtet.

  7. Klicken Sie auf Element hinzufügen, um die Service-Definitionsdatei hinzuzufügen und den Kachel-Layer zu veröffentlichen.

    Der Kachel-Layer wird auf dem Hosting-Server Ihres Portals veröffentlicht. Sowohl die Service-Definition als auch die Kacheln werden zu Eigene Inhalte hinzugefügt.

  8. Wenn der Kachel-Layer veröffentlicht wurde, können Sie die Kachelerstellung starten. Klicken Sie auf diesen Link, um die Kacheln zu erstellen.

Standardmäßig haben nur Sie selbst Zugriff auf die Service-Definitionsdatei und den gehosteten Kachel-Layer. Sie können die Datei und die Kacheln für andere Benutzer in Ihrer Organisation oder für bestimmte Gruppen freigeben.

Ausführen eines Skripts zum Hochladen und Veröffentlichen

Wenn Sie nach Geschäftsschluss eine Service-Definitionsdatei hochladen und veröffentlichen möchten, automatisieren Sie das folgende Skript, das auf Ihrem GIS Server-Computer ausgeführt werden soll:

  1. Kopieren Sie das folgende Skript in eine Textdatei, und speichern Sie die Datei mit der Erweiterung .py.

    import os, sys, json, urllib, urllib2, httplib, urlparse, mimetools, mimetypes
    from cStringIO import StringIO
    
    # generates a new token from Portal
    def generate_token(baseurl, username, password):
        tokenUrl = urlparse.urljoin(baseurl, 'sharing/generateToken')
        postdata = { 'username': username, 'password': password,
                   'client': 'requestip', 'expiration': 60, 'f': 'json' }
        encoded_postdata = urllib.urlencode(postdata)
        opener = urllib2.build_opener()
        try: resp = opener.open(tokenUrl, data=encoded_postdata)
        except urllib2.HTTPError as e: raise Exception('Unable to connect to Portal, please check the url: {} {}'.format(e.code, e.reason))
        resp_json = json.loads(resp.read())
        if 'error' in resp_json: raise Exception('\n'.join(resp_json['error']['details']))
        return resp_json['token']
        sys.exit(1)
    
    # create proper multi-part POST request data
    def _encode_multipart_formdata(fields, files):
        boundary = mimetools.choose_boundary()
        buf = StringIO()
        for (key, value) in fields.iteritems():
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"' % key)
            buf.write('\r\n\r\n%s\r\n' % str(value))
        for (key, filepath, filename) in files:
            buf.write('--%s\r\n' % boundary)
            buf.write('Content-Disposition: form-data; name="%s"; filename="%s"\r\n' % (key, filename))
            buf.write('Content-Type: %s\r\n' % (mimetypes.guess_type(filename)[0] or 'application/octet-stream'))
            f = open(filepath, "rb")
            try:
                buf.write('\r\n' + f.read() + '\r\n')
            finally:
                f.close()
        buf.write('--' + boundary + '--\r\n\r\n')
        buf = buf.getvalue()
        return boundary, buf
    
    # send multi-part POST request
    def _postmultipart(host, selector, fields, files, ssl):
        boundary, body = _encode_multipart_formdata(fields, files)
        headers = { 'Content-Type': 'multipart/form-data; boundary={0}'.format(boundary) }
        if ssl: h = httplib.HTTPSConnection(host)
        else: h = httplib.HTTPConnection(host)
        
        h.request('POST', selector, body, headers)
        resp = h.getresponse()
    
        return resp.read()
    
    # first upload the SD file and create an item in Portal
    def addSDItem(baseurl, user, token, title, file, folder = ''):
        addUrl = 'sharing/rest/content/users/{}/{}addItem'
        if folder != '': addUrl = addUrl.format(user, folder + '/')
        else: addUrl = addUrl.format(user, '')
        
        url = urlparse.urljoin(baseurl, addUrl)
    
        files = [('file', file, os.path.split(file)[1])]
        fields = { 'token' : token, 'f' : 'json', 'type' : 'Service Definition', 'title' : title, 
                   'tags' : 'sampletag', 'name': title, 'typeKeywords' : 'Data, Service Definition, ArcGIS, sd' }
    
        ssl = url.startswith('https://')
        
        parsed_url = urlparse.urlparse(url)
        
        print('Uploading {} to {}..'.format(file, baseurl))
        resp = _postmultipart(parsed_url.netloc, str(parsed_url.path), fields, files, ssl)
        resp_json = json.loads(resp)
    
        if 'error' in resp_json:
          raise Exception('Unable to upload file {}: {}'.format(file, resp_json['error']['message']))
        
        return resp_json['id']
        
    # second publish the uploaded SD item as a new tiled service
    def publishTiles(baseurl, user, token, itemid):
        publishUrl = urlparse.urljoin(baseurl, 'sharing/rest/content/users/{}/publish'.format(user))
        query_dict= { 'f' : 'json', 'token': token, 'itemid': itemid, 'buildInitialCache' : True,
                      'publishParameters' : { 'name' : 'cities' }, 'fileType': 'serviceDefinition' }
                      
        query_string = urllib.urlencode(query_dict)
        print('Publishing tile service from item..')
        response = urllib.urlopen(publishUrl, query_string)
            
        resp_json = json.loads(response.read())
        
        if 'error' in resp_json: raise Exception('Unable to publish item: {}'.format(resp_json['error']['message']))
    
    # read input from command line when run as a standalone script
    if __name__ == '__main__':
        try: 
          url = sys.argv[1]
          user = sys.argv[2]
          password = sys.argv[3]
          f = sys.argv[4]
          title = sys.argv[5]
          if not url.endswith('/'): url += '/' # make sure the url ends with /
        except: # if too few parameters are passed on command line, show usage help
          print('Usage: ')
          print('       publishServiceItem.py [portalUrl] [userName] [password] [sdFilePath] [titleOfServiceItem]')
          print('')
          print('portalUrl           The secure url to the portal, e.g. https://portalmachine.example.com/arcgis/')
          print('userName            The username of a user to publish the service.')
          print('                    This user must have the required publishing privileges.')
          print('password            The password of the user')
          print('sdFilePath          Path to the .sd file containing the service definition')
          print('                    E.g. c:\\temp\cachedService.sd')
          print('titleOfServiceItem  The title to assign to the published item in the portal.')
          sys.exit(1)  
    
        token = generate_token(url, user, password)
    
        id = addSDItem(url, user, token, title, f)
        publishTiles(url, user, token, id)
        print('Publishing complete. Tile generation has been started and may take a while to finish.')

  2. Erstellen Sie eine Batch-Datei oder ein Shell-Skript, die/das für die Ausführung des Python-Skripts festgelegt werden soll.
  3. Rufen Sie das Python-Skript in der Datei auf, und stellen Sie Optionen bereit, die für Ihre Site spezifisch sind.

    Um beispielsweise das Skript publishServiceItem.py auszuführen, geben Sie die URL zu Ihrem Portal, den Benutzernamen, mit dem die Verbindung hergestellt werden soll, das Kennwort des Benutzers, den Pfad zu der Service-Definitionsdatei und einen Titel für den Service an, der erstellt werden soll. In diesem Beispiel lautet die Portal-URL https://portal.domain.com/arcgis/, der Benutzername und das Kennwort lauten pub1 und pub.1, der Pfad zu der Service-Definitionsdatei ist C:\maps\SDs\mymap.sd und der Service-Name lautet "studytiles".

    publishServiceItem.py https://portal.domain.com/arcgis/ pub1 pub.1 C:\maps\SDs\mymap.sd studytiles

    Tipp:

    Alternativ können Sie das folgende vereinfachte Skript verwenden, um eine Service-Definitionsdatei in Ihr Portal hochzuladen, einen Kachel-Layer zu veröffentlichen und einen Cache zu erstellen. Sie müssen jedoch zusätzliche Python-Pakete wie PortalPy und Python Requests installieren, um dieses Skript auszuführen. PortalPy wird mit Portal for ArcGIS installiert. Weitere Informationen zum Installieren und Verwenden dieses Moduls finden Sie in der Portal for ArcGIS-Hilfe unter Skripterstellung für Verwaltungsaufgaben mit PortalPy.

    import portalpy, requests, urlparse, sys, os
    
    # first upload the SD file and create an item in Portal
    def addSDItem(baseurl, user, token, title, file, folder = ''):
        addUrl = 'sharing/rest/content/users/{}/{}addItem'
        if folder != '': addUrl = addUrl.format(user, folder + '/')
        else: addUrl = addUrl.format(user, '')
        
        url = urlparse.urljoin(baseurl, addUrl)
    
        files = { 'file' : (os.path.split(file)[1], open(file, 'rb')) }
        fields = { 'token' : token, 'f' : 'json', 'type' : 'Service Definition', 'title' : title, 
                   'tags' : 'sampletag', 'name': title, 'typeKeywords' : 'Data, Service Definition, ArcGIS, sd' }
    
        print('Uploading {} to {}..'.format(file, baseurl))
        
        # send POST with upload request
        # verify=False turns off SSL cert validation, turn on for production environments with CA-signed certs
        resp = requests.post(url, data=fields, files=files, verify=False)
        resp_json = resp.json()
    
        if 'error' in resp_json:
          raise Exception('Unable to upload file {}: {}'.format(file, resp_json['error']['message']))
        
        return resp_json['id']
    
    # second publish the uploaded SD item as a new tiled service
    def publishTiles(baseurl, user, token, itemid):
        publishUrl = urlparse.urljoin(baseurl, 'sharing/rest/content/users/{}/publish'.format(user))
        query_dict= { 'f' : 'json', 'token': token, 'itemid': itemid, 'buildInitialCache' : True,
                      'publishParameters' : "{ 'name' : 'cities' }", 'fileType': 'serviceDefinition' }
        
        print('Publishing tile service from item..')
        
        # send POST with publish request
        # verify=False turns off SSL cert validation, turn on for production environments with CA-signed certs
        response = requests.post(publishUrl, data=query_dict, verify=False) 
            
        resp_json = response.json()
        
        if 'error' in resp_json: raise Exception('Unable to publish item: {}'.format(resp_json['error']['message']))
    
    # read input from command line when run as a standalone script
    if __name__ == '__main__':
        try: 
          url = sys.argv[1]
          user = sys.argv[2]
          password = sys.argv[3]
          f = sys.argv[4]
          title = sys.argv[5]
          if not url.endswith('/'): url += '/' # make sure the url ends with /
        except: # if too few parameters are passed on command line, show usage help
          print('Usage: ')
          print('       publishServiceItem.py [portalUrl] [userName] [password] [sdFilePath] [titleOfServiceItem]')
          print('')
          print('portalUrl           The secure url to the portal, e.g. https://portalmachine.example.com/arcgis/')
          print('userName            The username of a user to publish the service.')
          print('                    This user must have the required publishing privileges.')
          print('password            The password of the user')
          print('sdFilePath          Path to the .sd file containing the service definition')
          print('                    E.g. c:\\temp\cachedService.sd')
          print('titleOfServiceItem  The title to assign to the published item in the portal.')
          sys.exit(1) 
    
        portal = portalpy.Portal(url, user, password)
        token = portal.generate_token(user, password)
    
        id = addSDItem(url, user, token, title, f)
        publishTiles(url, user, token, id)
        print('Publishing complete. Tile generation has been started and may take a while to finish.')

  4. Legen Sie fest, dass das Skript bei niedriger Portal-Auslastung ausgeführt wird.

    Weitere Informationen zum Planen eines Skripts finden Sie in der Hilfe zur ArcGIS-Geoverarbeitung unter Planen der Ausführung eines Python-Skriptes zu bestimmten Zeiten.