Remplacer une couche Web (Serveur)

Synthèse

Remplace le contenu d’une couche Web sur un portail par le contenu d’une autre couche Web.

Utilisation

  • La couche cible correspond à la couche Web à remplacer. La couche de mise à jour correspond à la couche Web de remplacement. Les couches cible et de mise à jour peuvent être des couches Web des types suivants :

    • Couches de tuiles vectorielles publiées à partir de paquetages de tuiles vectorielles
    • Couches de tuiles
    • Couches de scène publiées à partir de l’une des sources suivantes :
      • Paquetages de couche de scène hébergés sur ArcGIS Online ou un portail ArcGIS Enterprise
      • Caches de scène référencés dans un dossier ou des data stores Cloud

      Les couches de scène voxel ne peuvent pas être remplacées.

  • Pour remplacer une couche de tuiles vectorielles sur un portail ArcGIS Enterprise, vous devez utiliser la version 10.6 ou une version ultérieure. Pour remplacer une couche de tuiles, vous devez utiliser la version 10.8 ou une version ultérieure. Pour remplacer une couche de scène, vous devez utiliser la version 10.8.1 ou une version ultérieure.

  • Votre portail ArcGIS AllSource actif doit être le portail qui héberge les couches cible et de mise à jour. Vous devez être connecté à ArcGIS AllSource avec le compte propriétaire des couches cible et de mise à jour.

  • Les couches cible et de mise à jour doivent être du même type. Par exemple, il n’est pas possible de remplacer une couche de tuiles vectorielles par une couche de tuiles.

  • Le type de couche de scène de la couche cible doit correspondre à celui de la couche de mise à jour. Par exemple, il n’est pas possible de remplacer une couche de scène de bâtiments par une couche de scène d’objets 3D.

  • Pour remplacer une couche de scène Web, vous devez publier les couches cible et de mise à jour à partir de la même source. Il n’est ainsi pas possible de remplacer une couche de scène Web publiée depuis un paquetage de couche de scène par une couche de scène Web publiée depuis un cache de scène référencé.

  • Pour que vous puissiez remplacer des couches de scène Web publiées à partir de caches de scène référencés, les services de scène des couches cible et de mise à jour doivent exister sur le même serveur et dans le même dossier de serveur.

  • Lors de la mise à jour de la couche cible, son contenu est remplacé. L’ID d’élément et l’URL de service de la couche cible restent inchangés.

  • La couche Web qui est remplacée n’est pas écrasée. Elle est archivée sur votre portail sous un nouveau nom. Par défaut, le nom de la couche archivée est <nom de la couche>_archive_<horodatage>. Vous pouvez attribuer un autre nom, à condition qu’il s’agisse d’un nom de couche Web unique sur le portail.

  • Par défaut, la couche d’archive utilise l’ID d’élément de la couche de mise à jour. Vous pouvez spécifier un nouvel ID d’élément pour la couche d’archive.

  • Vous pouvez également remplacer les informations sur l’élément de la couche cible par des informations sur l’élément de la couche de mise à jour. Si vous remplacez les informations sur l’élément, le résumé, la description, les balises et l’image miniature sont remplacés. D’autres informations, telles que les crédits (attribution) et les conditions d’utilisation, restent inchangées.

Paramètres

ÉtiquetteExplicationType de données
Couche cible

Couche Web qui sera remplacée. Indiquez une couche ou un chemin du catalogue, ou encore l’ID d’élément ou l’URL de service de l’un des éléments suivants :

  • Couche de tuiles vectorielles publiées à partir d’un paquetage de tuiles vectorielles
  • Couche de tuiles
  • Couche de scène publiée à partir de l’une des sources suivantes :
    • Paquetage de couche de scène
    • Cache de scène référencé dans un dossier ou des data stores Cloud

Vector Tile Layer; Internet Tiled Layer; Scene Layer
Nom de la couche d’archive

Nom unique de la couche d’archive. La couche Web à remplacer est conservée sur le portail en tant que couche d’archive.

String
Couche de mise à jour

Couche Web de remplacement. Indiquez une couche ou un chemin du catalogue, ou encore l’ID d’élément ou l’URL de service de l’un des éléments suivants :

  • Couche de tuiles vectorielles publiées à partir d’un paquetage de tuiles vectorielles
  • Couche de tuiles
  • Couche de scène publiée à partir de l’une des sources suivantes :
    • Paquetage de couche de scène
    • Cache de scène référencé dans un dossier ou des data stores Cloud

Vector Tile Layer; Internet Tiled Layer; Scene Layer
Remplacer les informations sur l’élément
(Facultatif)

Spécifie si les informations sur l’élément de la couche cible (image miniature, résumé et balises) sont remplacés. Quelle que soit l’option, les informations relatives aux crédits (attribution), aux conditions d’utilisation et à la source de la création ne sont pas remplacées.

  • Désactivé : les informations sur l’élément de la couche cible ne sont pas remplacées lors de la mise à jour de la couche. Il s’agit de l’option par défaut.
  • Activé : les informations sur l’élément de la couche cible sont remplacées par les informations sur l’élément de la couche de mise à jour.
Boolean
Créer un nouvel élément pour la couche d’archive
(Facultatif)

Indique si un élément doit être créé pour la couche d’archive. Ce paramètre est pris en charge sur les portails dans ArcGIS Online et ArcGIS Enterprise 10.8 ou version ultérieure.

  • Désactivé : l’ID d’élément de la couche de mise à jour est utilisé pour la couche d’archive. Il s’agit de la valeur par défaut pour les couches de tuiles vectorielles et les couches de tuiles.
  • Activé : un ID d’élément est créé pour la couche d’archive. Il s’agit de la valeur par défaut pour les couches de scène.
Boolean

Sortie obtenue

ÉtiquetteExplicationType de données
Couche cible mise à jour

URL de la couche Web mise à jour.

String

arcpy.management.ReplaceWebLayer(target_layer, archive_layer_name, update_layer, {replace_item_info}, {create_new_item})
NomExplicationType de données
target_layer

Couche Web qui sera remplacée. Indiquez une couche ou un chemin du catalogue, ou encore l’ID d’élément ou l’URL de service de l’un des éléments suivants :

  • Couche de tuiles vectorielles publiées à partir d’un paquetage de tuiles vectorielles
  • Couche de tuiles
  • Couche de scène publiée à partir de l’une des sources suivantes :
    • Paquetage de couche de scène
    • Cache de scène référencé dans un dossier ou des data stores Cloud

Vector Tile Layer; Internet Tiled Layer; Scene Layer
archive_layer_name

Nom unique de la couche d’archive. La couche Web à remplacer est conservée sur le portail en tant que couche d’archive.

String
update_layer

Couche Web de remplacement. Indiquez une couche ou un chemin du catalogue, ou encore l’ID d’élément ou l’URL de service de l’un des éléments suivants :

  • Couche de tuiles vectorielles publiées à partir d’un paquetage de tuiles vectorielles
  • Couche de tuiles
  • Couche de scène publiée à partir de l’une des sources suivantes :
    • Paquetage de couche de scène
    • Cache de scène référencé dans un dossier ou des data stores Cloud

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

Spécifie si les informations sur l’élément de la couche cible (image miniature, résumé et balises) sont remplacés. Quelle que soit l’option, les informations relatives aux crédits (attribution), aux conditions d’utilisation et à la source de la création ne sont pas remplacées.

  • KEEPLes informations sur l’élément de la couche cible ne sont pas remplacées lors de la mise à jour de la couche. Il s’agit de l’option par défaut.
  • REPLACELes informations sur l’élément de la couche cible sont remplacées par les informations sur l’élément de la couche de mise à jour.
Boolean
create_new_item
(Facultatif)

Indique si un élément doit être créé pour la couche d’archive. Ce paramètre est pris en charge sur les portails dans ArcGIS Online et ArcGIS Enterprise 10.8 ou version ultérieure.

  • TRUEUn ID d’élément est créé pour la couche d’archive. Il s’agit de la valeur par défaut pour les couches de scène.
  • FALSEL’ID d’élément de la couche de mise à jour est utilisé pour la couche d’archive. Il s’agit de la valeur par défaut pour les couches de tuiles vectorielles et les couches de tuiles.
Boolean

Sortie obtenue

NomExplicationType de données
updated_target_layer

URL de la couche Web mise à jour.

String

Exemple de code

Exemple 1 d’utilisation de la fonction ReplaceWebLayer (script autonome)

Le script suivant remplace une couche Web en utilisant les ID d’élément des couches en entrée.

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.")
Exemple 2 d’utilisation de la fonction ReplaceWebLayer (script autonome)

Le script suivant remplace une couche Web dans ArcGIS Enterprise en utilisant les URL de service des couches en entrée.

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.")
Exemple 3 d’utilisation de la fonction ReplaceWebLayer (script autonome)

Le script suivant publie et remplace une couche de tuiles vectorielles.

Le script crée un paquetage de tuiles vectorielles en appelant la fonction CreateVectorTilePackage pour une carte. La fonction SharePackage charge ensuite le paquetage sur ArcGIS Online ou ArcGIS Enterprise et le publie sous forme de couche de tuiles vectorielles. Enfin, la fonction ReplaceWebLayer utilise les ID d’éléments pour remplacer le contenu d’une couche Web existante dans un portail par le contenu de la nouvelle couche Web. La couche de tuiles vectorielles qui est remplacée est archivée dans le portail sous un autre nom. Les informations de portail sont obtenues à l’aide de la fonction SignInToPortal.

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")