Skip To Content

Publicar capas de teselas alojadas

Las capas de teselas publicadas y alojadas en tu portal admiten la visualización rápida de datasets grandes mediante un conjunto de imágenes de mapa o teselas trazadas previamente. Las teselas alojadas proporcionan contexto geográfico para las capas operacionales. Por ejemplo, puede incluir teselas de las calles de su vecindario para proporcionar una referencia visual de las señales de tráfico en la capa de entidades.

Puede publicar una capa de teselas para alojarla en su portal utilizando cualquiera de los métodos siguientes:

Puede crear una caché en sus teselas automáticamente al publicar o generar la caché manualmente tras la publicación. Consulte Prácticas recomendadas para las cachés de teselas si desea obtener información.

Debe tener privilegios de creación de contenido y publicación de capas de teselas alojadas para publicar un mapa o un archivo de definición de servicio como una capa de teselas alojada.

Definir y publicar un mapa en ArcMap

Desde ArcMap, puede publicar una capa de teselas para alojarla en su portal.

Asegúrese de que ArcGIS Desktop está conectado al portal antes de iniciar ArcMap.

  1. Inicie ArcMap y abra el mapa que desea publicar.
  2. Inicie sesión en su portal con una cuenta de organización que tenga privilegios para crear contenido y publicar capas de teselas alojadas.
    1. Haga clic en Archivo > Iniciar sesión.
    2. Escriba su nombre de usuario y contraseña del portal y haga clic en Iniciar sesión.
  3. Ahora, publique el mapa.
  4. Haga clic en Archivo > Compartir como > Servicio.
  5. Seleccione Publicar un servicio y haga clic en Siguiente.
    Precaución:

    Si opta por sobrescribir el servicio, el elemento de tesela del mapa existente se elimina del portal y se crea un nuevo elemento con el mismo nombre. El nuevo elemento se crea en la carpeta raíz y se le asigna un Id. nuevo. Debe reconfigurar el uso compartido y, si es necesario, volver a mover el elemento a la carpeta donde residía antes de volver a publicarlo.

  6. En la lista desplegable de los tipos de conexión, elija Mis servicios alojados. A continuación, escriba un nombre para las teselas y haga clic en Continuar.
  7. Defina las propiedades que desee en el Editor del servicio. Aquí puede elegir lo que los usuarios pueden hacer con sus teselas y controlar de forma detallada cómo las va a exponer el servidor.

    Para obtener información sobre la mejor forma de configurar sus teselas para la implementación, consulte Ajustar y configurar servicios en la Ayuda de ArcGIS Server. Algunas de las propiedades a las que se hace referencia en ese tema solo tienen validez para ArcGIS Server y no se pueden usar cuando se trabaja con capas de teselas alojadas.

    Sugerencia:

    Si cierra el Editor de servicio durante esta sesión, se le solicitará que guarde su trabajo como un borrador de servicio. Los borradores de servicio le permiten volver a su trabajo de configuración del servicio después. De forma predeterminada, los borradores de servicios se guardan en la carpeta Borradores de su conexión a Mis mapas alojados. Para obtener más información, consulte Acerca de los borradores de servicios en la Ayuda de ArcGIS Server.

  8. Hay algunas propiedades que necesita establecer que son específicas de las capas de teselas alojadas. Estas se detallan en los siguientes pasos.
  9. En el panel izquierdo del Editor del servicio, haga clic en Funcionalidades y, a continuación, active la opción Representación cartográfica en teselas para mostrar el mapa como capa de teselas. Active Acceso a entidades para publicar una capa de teselas con sus teselas si desea configurar ventanas emergentes para la capa cuando la agregue al visor de mapas.

    Puede hacer clic en el elemento secundario Representación cartográfica en teselas situado el panel izquierdo del Editor del servicio para establecer las propiedades avanzadas relativas a lo que los clientes pueden hacer con la capa de teselas publicada.

  10. Haga clic en el elemento Almacenamiento en caché para establecer las propiedades de la caché de teselas. Consulte Crear una caché de mapa en la Ayuda de ArcGIS Server para obtener información más detallada de los pasos, sin olvidar que algunas de las configuraciones avanzadas de almacenamiento en caché solo están disponibles al publicar directamente en ArcGIS Server.
  11. En el panel izquierdo del Editor del servicio, haga clic en Descripción del elemento e introduzca un resumen y etiquetas para su capa de teselas. Debe introducir esta información para poder publicar. Para obtener más información, consulte la sección de descripción del elemento en Establecer las propiedades del servicio de mapas en la Ayuda de ArcGIS Server.
  12. En el panel izquierdo del Editor del servicio, haga clic en Uso compartido y elija con quién va a compartir la capa de teselas alojada. De forma predeterminada, su capa de teselas alojada se comparte exclusivamente con Mi contenido, lo que significa que solo usted puede tener acceso a ella. Su capa de teselas siempre estará visible en Mi contenido, pero también puede elegir compartirla con todos, con los miembros de su organización o solo con los miembros de ciertos grupos.
  13. En el Editor de servicios, haga clic en Analizar Analizar.

    Esta acción examina su mapa para ver si se puede publicar. Debe solucionar los Errores Error en la ventana Preparar antes de publicar. Si lo desea, puede arreglar las advertencias y los mensajes informativos para mejorar aún más el rendimiento y el aspecto de sus teselas publicadas. Para obtener más información acerca de la resolución de estos problemas, consulte Analizar el recurso SIG en la Ayuda de ArcGIS Server.

  14. También puede hacer clic en Vista previa Vista previa en el Editor del servicio. Esto puede darle una idea de cómo se verá la capa de teselas cuando se muestre en la web.
  15. Después de arreglar los errores y, de forma opcional, las advertencias y los mensajes, haga clic en Publicar Publicar.
    Nota:

    Los datos se copian en el servidor en este punto. El tamaño de los datos y la velocidad de la conexión de red y el ancho de banda afectarán al tiempo necesario para la publicación. También debe calcular algo de tiempo para que se generen las teselas.

Una vez que la capa de teselas se haya publicado en tu portal, la verás cuando expandas el nodo Mis servicios alojados en la ventana Catálogo.

La capa de teselas alojada aparece como dos elementos independientes en la página Mi contenido del sitio web del portal: las teselas y una definición de servicio. Una definición de servicio es un archivo comprimido que contiene el mapa, sus datos y detalles sobre la forma de publicar las teselas. Una definición de servicio pueden transferirse y publicarse en cualquier equipo que ejecute ArcGIS Server.

Definir y publicar un mapa en ArcGIS Pro

Desde un mapa de ArcGIS Pro, puedes publicar una capa de teselas para alojarla en tu portal.

También se debe tener en cuenta que los navegadores web no pueden visualizar algunos de los símbolos cartográficos más complejos que se puedan haber usado al crear el mapa. La mayoría de los tipos de símbolos están disponibles, pero en algunos casos los símbolos se pueden degradar al publicarlos. Consulta Crear servicios de entidades en la ayuda de ArcGIS Server para obtener más detalles sobre qué símbolos se admiten y realizar los cambios necesarios en la simbología del mapa antes de publicarlo.

  1. Inicie ArcGIS Pro y abra el proyecto que contiene el mapa que desea publicar.
  2. Asegúrese de que la conexión al portal esté activa y de que haya iniciado sesión en su organización usando una cuenta que tenga privilegios para crear contenido y publicar capas de teselas alojadas.
  3. Para publicar una capa de teselas, haga una de las siguientes acciones:
    • Seleccione las capas en el panel Contenido. Haga clic con el botón derecho del ratón en el conjunto de selección y haga clic en Compartir como capa web.
    • Para publicar todas las capas del mapa, haga clic en Capa web en el grupo Compartir como de la pestaña Compartir y, a continuación, haga clic en Publicar capa web.

    Sugerencia:

    Si la opción de menú Compartir como capa web no está activa, podría deberse a una de las siguientes razones:

    • La cuenta con la que ha iniciado sesión no tiene privilegios para publicar capas alojadas.
    • Su portal no está configurado con un servidor host, un requisito indispensable para alojar capas web.
    • Está intentando publicar una capa multiparche, que no es compatible.

  4. Escriba un nombre para la capa de teselas. La capa se guarda en Mi contenido de manera predeterminada. Puede guardarla en una carpeta de Mi contenido escribiendo el nombre de la carpeta o yendo a una carpeta existente.
  5. Elija Copiar todos los datos.
  6. Elija Tesela para el Tipo de capa.

    Con esto se desactivan automáticamente el resto de opciones del Tipo de capa, dado que solo se puede activar una opción cada vez al copiar datos.

  7. Indique un resumen y etiquetas para la capa de teselas.
  8. Especifique cómo se compartirá la capa de teselas. Todas las capas que se publiquen se compartirán automáticamente en el espacio de trabajo personal que tiene en su organización (Mi contenido). El contenido está inaccesible para otros hasta que se comparte con una o varias de las siguientes opciones:
    • El nombre de su portal: elegir esta opción permite compartir la capa con todos los usuarios autenticados en el portal.
    • Todos: al seleccionar esta opción hace que la capa esté disponible para cualquiera que acceda a su portal.
    • Grupos: puede compartir la capa con los miembros de los grupos a los que pertenece.
  9. Haga clic en Configuración y después en el botón Configurar propiedades de capa web para especificar la configuración de la caché.
  10. Elija un Esquema de ordenamiento en teselas.
  11. Cambie el tamaño y arrastre la barra Niveles de detalle para indicar las escalas mínima y máxima de la capa de teselas.

    El tamaño estimado de la caché resultante cambia a medida que se modifica la escala mínima y máxima.

  12. Elija cuándo y dónde generar la caché de teselas.
    • Elija Crear caché automáticamente en el servidor si desea que las teselas se generen en el servidor host del portal cuando publique la capa.
    • Si desea que la caché se genere y se guarde en el servidor host del portal, pero quiere generarla usted mismo después de la publicación, elija Crear caché manualmente en el servidor, abra la capa de teselas en el sitio web del portal una vez que se haya publicado la capa y cree la caché manualmente.
    • Elija Crear caché localmente y especifique una ubicación en el equipo de ArcGIS Pro para almacenar un paquete de teselas temporal si desea que la caché se genere y se desempaquete en el equipo de ArcGIS Pro. El paquete de teselas se cargará automáticamente en el servidor host del portal para desempaquetarse y la caché se almacenará allí.
  13. Para permitir que las personas descarguen teselas de mapas para su uso sin conexión, active Permitir a los clientes exportar las teselas de caché.
  14. Si ha activado Permitir a los clientes exportar las teselas de caché, use el campo Limitar la exportación a para especificar el número máximo de clientes de teselas que pueden activarse fuera de línea a la vez.
  15. Haga clic en la pestaña Contenido para confirmar que la capa de teselas incluirá las capas de datos previstas.
  16. Haga clic en Analizar para comprobar si hay algún error o problema.

    Si se detecta algún problema, se mostrará en la pestaña Mensajes. Haga clic con el botón derecho del ratón en cada mensaje para obtener más información, consulte la ayuda correspondiente al error o advertencia, y acceda a las soluciones sugeridas. Debe arreglar los errores antes de publicar. Si lo desea, puede arreglar las advertencias para mejorar el rendimiento y la apariencia de la capa de teselas alojada.

  17. Después de arreglar los errores y, de forma opcional, las advertencias, haga clic en Publicar.
    Nota:
    Los datos se copian en el servidor en este punto. El tamaño de los datos, la velocidad de la red y el ancho de banda afectarán al tiempo necesario para publicar.

Una vez finalizada la publicación, puede hacer clic en Administrar la capa web para abrir el sitio web del portal.

Crear y compartir un paquete de teselas en ArcMap y publicarlo

ArcMap le permite crear teselas para un documento de mapa y almacenarlas en un archivo de paquete de teselas (.tpk) que se puede transferir fácilmente. Puede crear un paquete de teselas en ArcMap, compartirlo en su portal y publicarlo como una capa de teselas alojada.

A continuación se describen dos flujos de trabajo diferentes. El primero se puede usar para los paquetes de teselas con tamaños pequeños o medianos y conservará elementos del documento de mapa como la leyenda y los elementos de texto cuando las teselas se publiquen desde el paquete de teselas. El segundo flujo de trabajo se recomienda para publicar paquetes de teselas grandes, pero solo conserva los datos cuando las teselas se publican desde el paquete de teselas.

Siga estos pasos para publicar un paquete de teselas de tamaño pequeño o mediano:

  1. Abra el mapa en ArcMap.
  2. Inicie sesión en su portal con una cuenta de organización que tenga privilegios para crear contenido y publicar capas de teselas alojadas.
  3. Haga clic en Personalizar > Opciones de ArcMap > Uso compartido y asegúrese de que la opción Habilitar herramientas de ArcGIS Runtime esté activada.

    Esto habilita la opción de menú que se utiliza en el paso siguiente.

  4. En ArcMap, haga clic en Archivo > Compartir como > Paquete de teselas.
  5. Configure todos los ajustes en los subpasos siguientes. Configure los demás ajustes a su gusto.
    1. En la pestaña Paquete de teselas, elija Cargar el paquete en mi cuenta de Portal for ArcGIS.
    2. En la pestaña Formato de tesela, seleccione ArcGIS Online / Bing Maps / Google Maps como Esquema de ordenamiento en teselas.
    3. En la pestaña Descripción del elemento, indique los elementos requeridos.
    4. En la pestaña Compartir, puede elegir si desea compartir el paquete con el público o con grupos específicos.
  6. Haga clic en Compartir.

    Es posible que se le pida que guarde el mapa antes de crear el paquete de teselas.

    La generación del paquete de teselas puede tardar un rato, especialmente si se han incluido escalas grandes.

  7. Una vez que haya terminado de generar su paquete de teselas, inicie sesión en el portal con la cuenta que utilizó cuando creó el paquete de teselas en ArcMap y haga clic en Mi contenido.
  8. Haga clic en el paquete de teselas para mostrar la página de detalles del elemento.
  9. Haga clic en Publicar.
  10. Escriba un título y unas etiquetas y haga clic en Publicar.

Las teselas se desempaquetan y se crea una capa de teselas alojada en tu portal. Debería poder ver las teselas de mapa en Mi contenido.

Para crear y compartir paquetes de teselas grandes, Esri recomienda utilizar el conjunto de herramientas Caché de teselas en lugar de usar el flujo de trabajo anterior. Estas herramientas pueden aprovechar la presencia de varios núcleos de procesamiento.

Ejecute estas herramientas en el orden siguiente:

  1. Ejecute Generar esquema de ordenamiento en teselas de la caché de teselas para definir la cuadrícula de teselas y el formato de imagen.
  2. Ejecute Administrar caché de teselas para crear las teselas.
  3. Ejecute Exportar caché de teselas para crear el paquete de teselas.
  4. Ejecuta Compartir paquete (en el conjunto de herramientas Paquete) para cargar las teselas en tu portal.

Tendrá que especificar una capa de entidades con la capa de teselas alojadas si desea configurar ventanas emergentes.

Crear un paquete de teselas en ArcGIS Pro y cargar en tu organización

Utiliza la herramienta de geoprocesamiento Crear paquete de teselas de mapa para crear un paquete de teselas, agregar el paquete a tu organización y publicar una capa de teselas.

  1. Abre el proyecto que contiene los datos que deseas empaquetar.
  2. Abre y ejecuta la herramienta de geoprocesamiento Crear paquete de teselas de mapa.
  3. Cuando se haya terminado de generar el paquete de teselas, inicie sesión en su portal utilizando una cuenta que tenga privilegios para crear contenido y publicar capas de teselas alojadas y haga clic Mi contenido.
  4. Agrega el paquete de teselas De mi equipo.
  5. Active la casilla situada junto a Publicar este archivo como capa alojada.
  6. Escriba un título y etiquetas y haga clic en Agregar elemento.

Las teselas se desempaquetan y se crea una capa de teselas alojada en tu portal. Deberías poder ver las teselas de mapa y el paquete de teselas en Mi contenido.

Publicar desde una capa de entidades alojada

Puede publicar una capa de teselas alojada en el portal usando una capa de entidades alojada si el servidor de alojamiento del portal usa un data store relacional creado con ArcGIS Data Store. Se trata de un flujo de trabajo útil para visualizar grandes datasets.

Nota:

  • Las ediciones de atributos espaciales realizadas en la capa de entidades alojada no se reflejan automáticamente en la capa de teselas alojada. Debe volver a publicar la capa de teselas alojada desde la capa de entidades alojada actualizada.
  • También hay restricciones de estilo en la capa de entidades alojada que podrían impedirle la publicación de una capa de teselas alojada.
  • No puede publicar una capa de teselas alojada desde una capa de entidades alojada de nube de puntos o multiparche.

Siga estos pasos para publicar una capa de teselas alojada desde una capa de entidades alojada:

  1. Inicie sesión con una cuenta que tenga privilegios para publicar capas de teselas alojadas y haga clic en Mi contenido.
  2. Para publicar, haga una de las siguientes acciones:
    • Haga clic en la capa de entidades alojada que desea publicar y en Publicar.
    • Haga clic en Crear > Capa de teselas y elija una Capa de entidades para publicar como teselas.
  3. Escriba un título, etiquetas y un resumen y escoja una carpeta para la capa de teselas alojada.
  4. Opcionalmente, cambie las extensiones a las que la capa se mostrará arrastrando los extremos del Rango visible.
    Precaución:

    Portal for ArcGIS le presenta un rango de escala sugerido, pero puede modificarlo. No obstante, tenga en cuenta que si incluye escalas grandes en el rango de escala, pueden incrementarse enormemente los recursos que se consumen en el servidor. No cree teselas más allá de la precisión de los datos.

  5. Haga clic en Aceptar.

    La capa de teselas alojada se crea y aparece su página de elementos.

Publicar desde un archivo de definición de servicio

Publicar teselas y generar una caché pueden usar muchos recursos del servidor. Si tiene que publicar un gran número de capas de teselas, los autores del mapa pueden crear archivos de definición de servicio (.sd) en ArcMap que contengan toda la información necesaria para publicar una capa de teselas en el portal. A continuación, puede usar una secuencia de comandos para cargar y publicar los archivos de definición de servicio en el portal fuera del horario comercial. Las capas de teselas resultantes se alojarán en el servidor de alojamiento del portal.

Crear un archivo de definición de servicio

El autor del mapa debería seguir estos pasos para crear un archivo de definición de servicio que contenga los datos y la simbología necesarios para la capa de teselas que se va a alojar en el portal.

  1. Inicie ArcMap e inicie sesión en el portal.
  2. Cree y guarde un mapa.

    Para obtener información sobre la creación y la publicación de un mapa, consulte los temas relativos al servicio de mapas en la Ayuda de ArcGIS Server.

  3. A continuación, cree un archivo de definición de servicio.
  4. Haga clic en Archivo > Compartir como > Servicio.
  5. Elija Guardar un archivo de definición del servicio y haga clic en Siguiente.
  6. Haga clic en Escoger una conexión y elija Mis servicios alojados en la lista desplegable.
  7. Escriba un nombre para el archivo y haga clic en Siguiente.
  8. Especifique el directorio del equipo cliente en el que se debe crear el archivo de definición de servicio y haga clic en Continuar.

    Se abre el Editor de servicio.

  9. En el panel izquierdo del Editor del servicio, haga clic en Almacenamiento en caché.
  10. Elija un Esquema de ordenamiento en teselas.
  11. Elija las escalas mínima y máxima para las teselas y Calcular el tamaño de la caché.
  12. Haga clic en Construir caché manualmente después de publicar el servicio.
  13. Si lo prefiere, puede hacer clic en Configuración avanzada y definir los ajustes de caché adicionales para la caché de teselas.
  14. En el panel izquierdo del Editor del servicio, haga clic en Descripción del elemento e introduzca la información de su capa de teselas.

    Debe indicar al menos un resumen y etiquetas antes de crear el archivo de definición de servicio.

  15. Haga clic en Analizar Analizar para asegurarse de que no hay errores.

    Debe resolver todos los errores para poder publicar el archivo de definición del servicio. Si lo prefiere, puede realizar las correcciones de las advertencias y los mensajes que hayan aparecido.

  16. Después de arreglar los errores y, de forma opcional, las advertencias y los mensajes, haga clic en Presentar Etapa.

El archivo de definición de servicio se guarda en la ubicación especificada.

Cargar la definición del servicio y publicar

Una vez que reciba el archivo de definición de servicio del autor, puede cargarlo manualmente en Mi contenido en el portal y publicar una capa de teselas o programar una secuencia de comandos para cargar y publicar el archivo.

Cargar manualmente y publicar

Inicie sesión en el sitio web del portal para agregar y publicar el archivo de definición de servicio en el portal.

  1. Inicie sesión en el portal como miembro con privilegios para crear contenido y publicar capas de teselas alojadas y abra Mi contenido.
  2. Haga clic en Agregar elemento.
  3. Elija cargar el archivo desde su equipo.
  4. Haga clic en el botón Examinar y elija el archivo de definición de servicio.
  5. Active Publique este archivo como un servicio.
  6. Escriba los términos de las etiquetas separados por comas.

    Las etiquetas son palabras o frases cortas que describen un elemento y facilitan su búsqueda. Territorio federal se considera una etiqueta, mientras que Federal,territorio se considera dos etiquetas.

  7. Haga clic en Agregar elemento para agregar el archivo de definición de servicio y publicar la capa de teselas.

    La capa de teselas se publica en el servidor de alojamiento del portal y tanto la definición del servicio como las teselas se agregan a Mi contenido.

  8. Cuando la capa de teselas se haya publicado, tendrá la opción de Empezar a construir teselas. Haga clic en el vínculo para crear las teselas.

De manera predeterminada, solo usted tiene acceso al archivo de definición de servicio y a la capa de teselas alojada. Puede compartir el archivo y las teselas con otros usuarios de su organización o con grupos concretos.

Ejecutar una secuencia de comandos para cargar y publicar

Para cargar y publicar un archivo de definición de servicio fuera del horario habitual, automatice la siguiente secuencia de comandos para que se ejecute en su equipo con GIS Server.

  1. Copie la siguiente secuencia de comandos en un archivo de texto y guarde el archivo con una extensión .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. Cree un archivo de lotes o una secuencia de comandos de shell que programará para que ejecute la secuencia de comandos de Python.
  3. En el archivo, llame a la secuencia de comandos y proporcione opciones específicas del sitio.

    Por ejemplo, para ejecutar la secuencia de comandos publishServiceItem.py, escriba la dirección URL de su portal, el nombre de usuario con el que se debe conectar, la contraseña del usuario, la ruta del archivo de definición de servicio y un título para el servicio que se va a crear. En este ejemplo, la URL del portal es https://portal.domain.com/arcgis/, el nombre de usuario y la contraseña son pub1 y pub.1, la ruta del archivo de definición de servicio es C:\maps\SDs\mymap.sd y el nombre del servicio es studytiles.

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

    Sugerencia:

    Como alternativa, puede usar la siguiente secuencia de comandos simplificada para cargar un archivo de definición de servicio en el portal, publicar una capa de teselas y generar una caché. Sin embargo, debe instalar dos paquetes de Python adicionales, PortalPy y Python Requests, para ejecutar esta secuencia de comandos. PortalPy se instala con Portal for ArcGIS. Consulte Tareas administrativas con PortalPy mediante secuencias de comandos en la ayuda de Portal for ArcGIS para obtener más información sobre la instalación y el uso de este módulo.

    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. Programe la secuencia de comandos para que se ejecute en los momentos de menor uso del portal.

    Consulte Programar la secuencia de comandos de Python para que se ejecute en períodos prescritos en la Ayuda de geoprocesamiento de ArcGIS para obtener más información sobre la programación de una secuencia de comandos.