Más

Cómo editar las capacidades con Python al publicar servicios de mapas

Cómo editar las capacidades con Python al publicar servicios de mapas


La publicación del servicio de mapas de la forma habitual se realiza aquí mediante arcgis desktop.

Pero decidí hacerlo con python para poder automatizar el proceso o algo así, pero primero necesito editar parte de la información de acuerdo con esto, crearía el archivo SD antes de publicarlo. Debido al representante 0, no puedo publicar más de dos enlaces, pero la publicación es normal.

y usando arcpy

.

Como puede ver, resalté la descripción de acuerdo con la imagen, significa que está buscando la Descripción del artículo.

Es la forma correcta de hacerlo

# busque el elemento Descripción de la información del elemento Capability = doc.getElementsByTagName ('Capabilities') para el elemento en Capability: if item.parentNode.tagName == 'FeatureAccess': # ¿Cómo puedo marcar esta casilla de verificación? demás:

La etiqueta que desea buscar es 'TypeName'.

puedes acceder a él así:

importar xml.dom.minidom como dom def feature_server_toggle (doc, status): type_names = doc.getElementsByTagName ('TypeName') para type_name en type_names: if type_name.firstChild.data == "FeatureServer" y status.lower () == 'on': type_name.parentNode.getElementsByTagName ("Enabled") [0] .firstChild.data = "true" si type_name.firstChild.data == "FeatureServer" y status.lower () == 'off': type_name. parentNode.getElementsByTagName ("Habilitado") [0] .firstChild.data = "false" sddraft =  salida =  doc = dom.parse (sddraft) con open (salida, 'w +') como xml: feature_server_toggle (doc, 'on') doc.writexml (xml)

O puede modificar la función para permitirle habilitar o deshabilitar cualquier capacidad como esta:

importar xml.dom.minidom como dom def capacity_toggle (doc, server_type, status): type_names = doc.getElementsByTagName ('TypeName') para type_name en type_names: if type_name.firstChild.data == "{}". format (server_type) y status.lower () == 'on': type_name.parentNode.getElementsByTagName ("Enabled") [0] .firstChild.data = "true" if type_name.firstChild.data == "{}". format (server_type) y status.lower () == 'off': type_name.parentNode.getElementsByTagName ("Enabled") [0] .firstChild.data = "false" sddraft =  salida =  doc = dom.parse (sddraft) con open (salida, 'w +') como xml: Capacity_toggle (doc, 'FeatureServer', 'on') Capacity_toggle (doc, 'KmlServer', 'off') doc.writexml (xml)

Aquí hay una lista de valores válidos para usar para server_type:

  • 'KmlServer'
  • 'FeatureServer'
  • 'MapServer'
  • 'WCSServer'
  • 'WMSServer'
  • 'WFSServer'
  • 'SchematicsServer'
  • 'MobileServer'
  • 'NAServer'

De acuerdo, esto es algo nuevo y la solución simple para esto es guardar un archivo de borrador de servicio y abrirlo con un editor de texto. A continuación, puede buscar las capacidades que desea cambiar, por ejemplo, el Acceso a funciones que quería se llamaba

Ejemplo