Sustituir capa web (Servidor)

Resumen

Sustituye el contenido de una capa web de un portal por el contenido de otra capa web.

Uso

  • La capa de destino es la capa web que se va a sustituir. La capa de actualización es la capa web de sustitución. Las capas de destino y actualización pueden ser los siguientes tipos de capas web:

    • Capas de teselas vectoriales publicadas a partir de paquetes de teselas vectoriales
    • Capa de teselas
    • Capas de escena publicadas desde una de las siguientes fuentes:
      • Paquetes de capas de escena alojados en ArcGIS Online o en un portal de ArcGIS Enterprise
      • Cachés de escenas de referencia en carpetas o en data stores de la nube

      Las capas de escena de vóxel no se pueden reemplazar.

  • Para sustituir una capa de teselas vectoriales en un portal de ArcGIS Enterprise, debe utilizar 10.6 o una versión posterior. Para sustituir una capa de teselas, debe utilizar 10.8 o una versión posterior. Para sustituir una capa de escena, debe utilizar 10.8.1 o una versión posterior.

  • Su portal activo de ArcGIS AllSource debe ser el portal que aloje las capas de destino y actualización. Debe haber iniciado sesión en ArcGIS AllSource con la cuenta a la que pertenecen las capas de destino y actualización.

  • Las capas de destino y actualización deben ser del mismo tipo. Por ejemplo, no puede sustituir una capa de teselas vectoriales por una capa de teselas.

  • El tipo de capa de escena de las capas de destino y actualización debe coincidir. Por ejemplo, no puede sustituir una capa de escena de edificios por una capa de escena de objetos 3D.

  • Para sustituir una capa de escena web, la capa de destino y la capa de actualización se deben publicar desde la misma fuente. Por ejemplo, no puede sustituir una capa de escena web publicada desde un paquete de capas de escena por una capa de escena web publicada desde una caché de escena de referencia.

  • Para sustituir capas de escenas web publicadas desde cachés de escena de referencia, los servicios de escena de la capa de destino y la capa de actualización deben existir en el mismo servidor y carpeta del servidor.

  • Cuando se actualiza la capa de destino, se sustituye el contenido de la capa. El Id. de elemento y la URL de servicio de la capa de destino no cambian.

  • La capa web que se sustituye no se sobrescribe. Se archiva en su portal con un nuevo nombre. De forma predeterminada, el nombre de la capa de archivo es <nombre de la capa>_archive_<marca de hora>. Puede asignar otro nombre, pero debe ser un nombre de capa web único en el portal.

  • De forma predeterminada, la capa de archivo utiliza el Id. de elemento de la capa de actualización. Puede especificar un nuevo Id. de elemento para la capa de archivo.

  • Puede sustituir la información del elemento de la capa de destino por la información del elemento de la capa de actualización. Si sustituye la información del elemento, se sustituyen el resumen, la descripción, las etiquetas y la imagen de vista en miniatura. Otra información, como los créditos (atribución) y las condiciones de uso, no se sustituyen.

Parámetros

EtiquetaExplicaciónTipo de datos
Capa de destino

La capa web que se sustituirá. Proporcione una ruta de capa o de catálogo, o proporcione el Id. de elemento o la URL de servicio de uno de los siguientes:

  • Capa de teselas vectoriales publicada a partir de un paquete de teselas vectoriales
  • Capa de teselas
  • Capa de escena publicada desde una de las siguientes fuentes:
    • Paquete de capas de escena
    • Caché de escenas de referencia en carpetas o en data stores de la nube

Vector Tile Layer; Internet Tiled Layer; Scene Layer
Nombre de la capa de archivo

Un nombre único para la capa de archivo. La capa web que se sustituye sigue en el portal como capa de archivo.

String
Actualizar la capa

La capa web de sustitución. Proporcione una ruta de capa o de catálogo, o proporcione el Id. de elemento o la URL de servicio de uno de los siguientes:

  • Capa de teselas vectoriales publicada a partir de un paquete de teselas vectoriales
  • Capa de teselas
  • Capa de escena publicada desde una de las siguientes fuentes:
    • Paquete de capas de escena
    • Caché de escenas de referencia en carpetas o en data stores de la nube

Vector Tile Layer; Internet Tiled Layer; Scene Layer
Sustituir la información del elemento
(Opcional)

Especifica si se sustituirá la información del elemento de la capa de destino (imagen en miniatura, resumen, descripción y etiquetas). Con cualquiera de las dos opciones, los créditos del elemento (atribución), las condiciones de uso y la información de "creado a partir de" no se sustituirán.

  • Desactivado: la información del elemento de la capa de destino no se sustituye cuando se actualiza la capa. Esta es la opción predeterminada.
  • Activado: la información del elemento de la capa de destino se sustituye por la información del elemento de la capa.
Boolean
Crear nuevo elemento para capa de archivo
(Opcional)

Especifica si se creará un elemento para la capa de archivo. Este parámetro se admite en portales en ArcGIS Online y ArcGIS Enterprise 10.8 o posterior.

  • Desactivado: el Id. de elemento de la capa de actualizaciones se utiliza para la capa de archivo. Este es el valor predeterminado para capas de teselas vectoriales y capas de teselas.
  • Activado: se crea un nuevo Id. de elemento para la capa de archivo. Este es el valor predeterminado para capas de escenas.
Boolean

Salida derivada

EtiquetaExplicaciónTipo de datos
Capa de destino actualizada

La URL de la capa web actualizada.

String

arcpy.management.ReplaceWebLayer(target_layer, archive_layer_name, update_layer, {replace_item_info}, {create_new_item})
NombreExplicaciónTipo de datos
target_layer

La capa web que se sustituirá. Proporcione una ruta de capa o de catálogo, o proporcione el Id. de elemento o la URL de servicio de uno de los siguientes:

  • Capa de teselas vectoriales publicada a partir de un paquete de teselas vectoriales
  • Capa de teselas
  • Capa de escena publicada desde una de las siguientes fuentes:
    • Paquete de capas de escena
    • Caché de escenas de referencia en carpetas o en data stores de la nube

Vector Tile Layer; Internet Tiled Layer; Scene Layer
archive_layer_name

Un nombre único para la capa de archivo. La capa web que se sustituye sigue en el portal como capa de archivo.

String
update_layer

La capa web de sustitución. Proporcione una ruta de capa o de catálogo, o proporcione el Id. de elemento o la URL de servicio de uno de los siguientes:

  • Capa de teselas vectoriales publicada a partir de un paquete de teselas vectoriales
  • Capa de teselas
  • Capa de escena publicada desde una de las siguientes fuentes:
    • Paquete de capas de escena
    • Caché de escenas de referencia en carpetas o en data stores de la nube

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

Especifica si se sustituirá la información del elemento de la capa de destino (imagen en miniatura, resumen, descripción y etiquetas). Con cualquiera de las dos opciones, los créditos del elemento (atribución), las condiciones de uso y la información de "creado a partir de" no se sustituirán.

  • KEEPLa información del elemento de la capa de destino no se sustituye cuando se actualiza la capa. Esta es la opción predeterminada.
  • REPLACELa información del elemento de la capa de destino se sustituye por la información del elemento de la capa.
Boolean
create_new_item
(Opcional)

Especifica si se creará un elemento para la capa de archivo. Este parámetro se admite en portales en ArcGIS Online y ArcGIS Enterprise 10.8 o posterior.

  • TRUESe crea un nuevo Id. de elemento para la capa de archivo. Este es el valor predeterminado para capas de escenas.
  • FALSEEl Id. de elemento de la capa de actualizaciones se utiliza para la capa de archivo. Este es el valor predeterminado para capas de teselas vectoriales y capas de teselas.
Boolean

Salida derivada

NombreExplicaciónTipo de datos
updated_target_layer

La URL de la capa web actualizada.

String

Muestra de código

Ejemplo 1 de ReplaceWebLayer (script independiente)

El siguiente script sustituye una capa web por los Id. de elemento de las capas de entrada.

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.")
Ejemplo 2 de ReplaceWebLayer (script independiente)

El siguiente script sustituye una capa web de ArcGIS Enterprise por las URL de servicio de las capas de entrada.

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.")
Ejemplo 3 de ReplaceWebLayer (script independiente)

El siguiente script publica y sustituye una capa de teselas vectoriales.

El script crea un paquete de teselas vectoriales llamando a la función CreateVectorTilePackage para obtener un mapa. A continuación, la función SharePackage carga el paquete de teselas vectoriales en ArcGIS Online o ArcGIS Enterprise y lo publica como una capa de teselas vectoriales. Por último, la función ReplaceWebLayer usa Id. de elementos para sustituir el contenido de una capa web existente en el portal por el contenido de la nueva capa web. La capa de teselas vectoriales que se sustituye se archiva en el portal con un nombre nuevo. La información del portal se obtiene de la función 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")