Web-Layer ersetzen (Server)

Zusammenfassung

Ersetzt den Inhalt eines Web-Layers in einem Portal durch den Inhalt eines anderen Web-Layers.

Verwendung

  • Der Ziel-Layer ist der Web-Layer, der ersetzt werden soll. Der Aktualisierungs-Layer ist der Ersatz-Web-Layer. Die Ziel- und Aktualisierungs-Layer können einen der folgenden Web-Layer-Typen aufweisen:

    • Vektorkachel-Layer, die von Vektorkachelpaketen veröffentlicht werden
    • Kachel-Layer
    • Szenen-Layer, die aus einer der folgenden Quellen veröffentlicht werden:
      • Szenen-Layer-Pakete, die in ArcGIS Online oder einem ArcGIS Enterprise-Portal gehostet werden
      • Referenzierte Szenen-Caches in einem Ordner oder Cloud-Datenspeicher

      Voxel-Szenen-Layer können nicht ersetzt werden.

  • Um einen Vektorkachel-Layer in einem ArcGIS Enterprise-Portal ersetzen zu können, müssen Sie Version 10.6 oder höher verwenden. Zum Ersetzen eines Kachel-Layers müssen Sie Version 10.8 oder höher verwenden. Zum Ersetzen eines Szenen-Layers müssen Sie Version 10.8.1 oder höher verwenden.

  • Ihr aktives ArcGIS AllSource-Portal muss das Portal sein, in dem der Ziel- und der Aktualisierungs-Layer gehostet werden. Sie müssen sich bei ArcGIS AllSource mit dem Konto anmelden, das den Ziel- und den Aktualisierungs-Layer besitzt.

  • Der Ziel-Layer und Aktualisierungs-Layer müssen von demselben Typ sein. Beispielsweise kann ein Vektorkachel-Layer nicht durch einen Kachel-Layer ersetzt werden.

  • Der Szenen-Layer-Typ von Ziel-Layer und Aktualisierungs-Layer muss übereinstimmen. Beispielsweise kann ein Gebäude-Szenen-Layer nicht durch einen 3D-Objekt-Szenen-Layer ersetzt werden.

  • Um einen Webszenen-Layer zu ersetzen, müssen der Ziel-Layer und der Aktualisierungs-Layer aus derselben Quelle veröffentlicht werden. Beispielsweise können Sie einen Webszenen-Layer, der aus einem Szenen-Layer-Paket veröffentlicht wurde, nicht durch einen Webszenen-Layer ersetzen, der aus einem referenzierten Szenen-Cache veröffentlicht wurde.

  • Um aus referenzierten Szenen-Caches veröffentlichte Webszenen-Layer zu ersetzen, müssen die Szenen-Services des Ziel-Layers und des Aktualisierungs-Layers auf demselben Server und in demselben Serverordner vorhanden sein.

  • Beim Aktualisieren des Ziel-Layers wird sein Inhalt ersetzt. Element-ID und Service-URL des Ziel-Layers werden nicht geändert.

  • Der Web-Layer, der ersetzt wird, wird nicht überschrieben. Er wird in Ihrem Portal mit einem neuen Namen archiviert. Der Archiv-Layer erhält standardmäßig den Namen <Layer-Name>_archive_<Zeitstempel>. Sie können einen anderen Namen wählen. Dieser muss jedoch ein eindeutiger Web-Layer-Name im Portal sein.

  • Für den Archiv-Layer wird standardmäßig die Element-ID des Aktualisierungs-Layers verwendet. Sie können für den Archiv-Layer eine neue Element-ID angeben.

  • Sie können die Elementinformationen des Ziel-Layers durch die Elementinformationen des Aktualisierungs-Layers ersetzen. Beim Ersetzen der Elementinformationen werden Zusammenfassung, Beschreibung, Tags und Miniaturansicht-Bild ersetzt. Sonstige Informationen, wie zum Beispiel Quellennachweis (Attributierung) und Nutzungsbedingungen, werden nicht ersetzt.

Parameter

BeschriftungErläuterungDatentyp
Ziel-Layer

Der Web-Layer, der ersetzt werden soll. Geben Sie einen Layer- oder Katalogpfad an, oder geben Sie die Element-ID oder Service-URL eines der folgenden Elemente an:

  • Vektorkachel-Layer, der vom Vektorkachelpaket veröffentlicht wird
  • Kachel-Layer
  • Szenen-Layer, der aus einer der folgenden Quellen veröffentlicht wird:
    • Szenen-Layer-Paket
    • Referenzierter Szenen-Cache in einem Ordner oder Cloud-Datenspeicher

Vector Tile Layer; Internet Tiled Layer; Scene Layer
Archiv-Layer-Name

Ein eindeutiger Name für den Archiv-Layer. Der Web-Layer, der ersetzt wurde, verbleibt als Archiv-Layer im Portal.

String
Aktualisierungs-Layer

Der Ersatz-Web-Layer. Geben Sie einen Layer- oder Katalogpfad an, oder geben Sie die Element-ID oder Service-URL eines der folgenden Elemente an:

  • Vektorkachel-Layer, der vom Vektorkachelpaket veröffentlicht wird
  • Kachel-Layer
  • Szenen-Layer, der aus einer der folgenden Quellen veröffentlicht wird:
    • Szenen-Layer-Paket
    • Referenzierter Szenen-Cache in einem Ordner oder Cloud-Datenspeicher

Vector Tile Layer; Internet Tiled Layer; Scene Layer
Elementinformationen ersetzen
(optional)

Gibt an, ob die Elementinformationen des Ziel-Layers (Miniaturansicht-Bild, Zusammenfassung, Beschreibung und Tags) ersetzt werden sollen. Die Informationen zu Quellennachweis (Attributierung), Nutzungsbedingungen und Quelle (Erstellt aus) für das Element werden mit keiner der Optionen ersetzt.

  • Deaktiviert: Die Elementinformationen des Ziel-Layers werden beim Aktualisieren des Layers nicht ersetzt. Dies ist die Standardeinstellung.
  • Aktiviert: Die Elementinformationen des Ziel-Layers werden durch die Elementinformationen des Aktualisierungs-Layers ersetzt.
Boolean
Neues Element für Archiv-Layer erstellen
(optional)

Gibt an, ob für den Archiv-Layer ein Element erstellt wird. Dieser Parameter wird für Portale in ArcGIS Online und ArcGIS Enterprise 10.8 oder höher unterstützt.

  • Deaktiviert: Für den Archiv-Layer wird die Element-ID des Aktualisierungs-Layers verwendet. Dies ist die Standardeinstellung für Vektorkachel- und Kachel-Layer.
  • Aktiviert: Für den Archiv-Layer wird eine Element-ID erstellt. Dies ist die Standardeinstellung für Szenen-Layer.
Boolean

Abgeleitete Ausgabe

BeschriftungErläuterungDatentyp
Aktualisierter Ziel-Layer

Die URL des aktualisierten Web-Layers.

String

arcpy.management.ReplaceWebLayer(target_layer, archive_layer_name, update_layer, {replace_item_info}, {create_new_item})
NameErläuterungDatentyp
target_layer

Der Web-Layer, der ersetzt werden soll. Geben Sie einen Layer- oder Katalogpfad an, oder geben Sie die Element-ID oder Service-URL eines der folgenden Elemente an:

  • Vektorkachel-Layer, der vom Vektorkachelpaket veröffentlicht wird
  • Kachel-Layer
  • Szenen-Layer, der aus einer der folgenden Quellen veröffentlicht wird:
    • Szenen-Layer-Paket
    • Referenzierter Szenen-Cache in einem Ordner oder Cloud-Datenspeicher

Vector Tile Layer; Internet Tiled Layer; Scene Layer
archive_layer_name

Ein eindeutiger Name für den Archiv-Layer. Der Web-Layer, der ersetzt wurde, verbleibt als Archiv-Layer im Portal.

String
update_layer

Der Ersatz-Web-Layer. Geben Sie einen Layer- oder Katalogpfad an, oder geben Sie die Element-ID oder Service-URL eines der folgenden Elemente an:

  • Vektorkachel-Layer, der vom Vektorkachelpaket veröffentlicht wird
  • Kachel-Layer
  • Szenen-Layer, der aus einer der folgenden Quellen veröffentlicht wird:
    • Szenen-Layer-Paket
    • Referenzierter Szenen-Cache in einem Ordner oder Cloud-Datenspeicher

Vector Tile Layer; Internet Tiled Layer; Scene Layer
replace_item_info
(optional)

Gibt an, ob die Elementinformationen des Ziel-Layers (Miniaturansicht-Bild, Zusammenfassung, Beschreibung und Tags) ersetzt werden sollen. Die Informationen zu Quellennachweis (Attributierung), Nutzungsbedingungen und Quelle (Erstellt aus) für das Element werden mit keiner der Optionen ersetzt.

  • KEEPDie Elementinformationen des Ziel-Layers werden beim Aktualisieren des Layers nicht ersetzt. Dies ist die Standardeinstellung.
  • REPLACEDie Elementinformationen des Ziel-Layers werden durch die Elementinformationen des Aktualisierungs-Layers ersetzt.
Boolean
create_new_item
(optional)

Gibt an, ob für den Archiv-Layer ein Element erstellt wird. Dieser Parameter wird für Portale in ArcGIS Online und ArcGIS Enterprise 10.8 oder höher unterstützt.

  • TRUEFür den Archiv-Layer wird eine Element-ID erstellt. Dies ist die Standardeinstellung für Szenen-Layer.
  • FALSEFür den Archiv-Layer wird die Element-ID des Aktualisierungs-Layers verwendet. Dies ist die Standardeinstellung für Vektorkachel- und Kachel-Layer.
Boolean

Abgeleitete Ausgabe

NameErläuterungDatentyp
updated_target_layer

Die URL des aktualisierten Web-Layers.

String

Codebeispiel

ReplaceWebLayer: Beispiel 1 (eigenständiges Skript)

Mit dem folgenden Skript wird ein Web-Layer mit den Element-IDs der Eingabe-Layer ersetzt.

import arcpy
import time

# Set local variables
targetLayerID = "42994b1a3e63425aa02bcfa1200683ae"
archiveLayerName = "ReplaceWebLayerExample_archive_" + time.strftime("%Y%m%d")
updateLayerID = "9e1d80c874e040fc88ad06b0cfa01381"
replaceItemInfo = "REPLACE"
createNewItem = "TRUE"

# Run Replace Web Layer
arcpy.server.ReplaceWebLayer(targetLayerID, archiveLayerName, updateLayerID, 
                             replaceItemInfo, createNewItem)

print("Successfully replaced web layer.")
ReplaceWebLayer: Beispiel 2 (eigenständiges Skript)

Mit dem folgenden Skript wird ein Web-Layer in ArcGIS Enterprise mit den Service-URLs der Eingabe-Layer ersetzt.

import arcpy
import time

# Set local variables
targetLayer = "https://webadaptorhost.domain.com/webadaptorname/rest/services/Hosted/targetServiceName/VectorTileServer"
archiveLayerName = "targetServiceName_archive_" + time.strftime("%Y%m%d")
updateLayer = "https://webadaptorhost.domain.com/webadaptorname/rest/services/Hosted/updateServiceName/VectorTileServer"

# Run Replace Web Layer
arcpy.server.ReplaceWebLayer(targetLayer, archiveLayerName, updateLayer)

print("Successfully replaced web layer.")
ReplaceWebLayer: Beispiel 3 (eigenständiges Skript)

Mit dem folgenden Skript wird ein Vektorkachel-Layer veröffentlicht und ersetzt.

Das Skript ruft die Funktion CreateVectorTilePackage für eine Karte auf, um ein Vektorkachelpaket zu erstellen. Anschließend lädt die Funktion SharePackage das Vektorkachelpaket in ArcGIS Online oder ArcGIS Enterprise und veröffentlicht es als Vektorkachel-Layer. Zum Schluss verwendet die Funktion ReplaceWebLayer die Element-IDs, um den Inhalt eines vorhandener Web-Layers im Portal durch den Inhalt des neuen Web-Layers zu ersetzen. Der Vektorkachel-Layer, der ersetzt wurde, wird im Portal unter einem neuen Namen archiviert. Portal-Informationen werden in der Funktion SignInToPortal abgerufen.

import arcpy
import os
import json

# Sign in to portal
arcpy.SignInToPortal("https://www.arcgis.com", "MyUserName", "MyPassword")

# Reference map to publish
aprx = arcpy.mp.ArcGISProject(r"C:\Project\World.aprx")
m = aprx.listMaps('World')[0]

# Set output file names
outdir = r"C:\Project\Output"
service_name = "VectorTileLayerExample"
package_filename = service_name + ".vtpk"
package_output_filename = os.path.join(outdir, package_filename)

# Create vector tile package
arcpy.management.CreateVectorTilePackage(m, package_output_filename, "ONLINE")

# Upload and publish vector tile package
result = arcpy.management.SharePackage(package_output_filename, publish_web_layer=True)

print("Finish uploading and publishing package")

# Get the item ID or service URL of the vector tile layer
jobresult = result[1]
result = json.loads(jobresult)

# Publish results JSON response example: {"publishStatus":"<status>","publishMessage":"<message>","publishResult":{"type":"Vector Tile Service","serviceurl":"<service_url>","size":1913146,"jobId":"<ID>","serviceItemId":"<ItemID>"}}
itemID = str(result.get('publishResult', {}).get('serviceItemId'))

print("Start Replacing")

# Set local variables for Replace Web Layer workflow
# target_layer/update_layer can be item ID or service URL; example below uses item ID
target_layer = "808ecf02f39441d69f245c0cb261134b"
archive_layer_name = "ReplaceWebLayerExample_archive"
update_layer = itemID
replace_item_info = "REPLACE"
create_new_item = "TRUE"

# Run Replace Web Layer
arcpy.server.ReplaceWebLayer(target_layer, archive_layer_name, update_layer,
                             replace_item_info, create_new_item)

print("Finished Replacing")