Skip To Content

Publicar capas de teselas alojadas

Las capas de teselas publicadas y alojadas en su 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 para obtener más información.

Para publicar una capa de teselas alojada, debe ser miembro de una de las opciones siguientes en su portal:

Publicar desde una capa de entidades alojada

Puede publicar una capa de teselas alojada en su portal utilizando una capa de entidades alojada que le pertenezca. Este flujo de trabajo resulta útil para visualizar datasets grandes, ya que las teselas almacenadas en caché se dibujan más deprisa que las entidades representadas dinámicamente.

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 en su portal y haga clic en Contenido > Mi contenido.
  2. Para publicar, realice 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 para la capa de teselas alojada.
  4. Si el administrador de su portal ha configurado categorías de contenido, haga clic en Asignar categoría y seleccione hasta 20 categorías para que resulte más fácil encontrar su elemento. También puede usar el cuadro Filtrar categorías para acotar la lista de categorías.

    Las categorías están disponibles a partir de la versión ArcGIS Enterprise 10.6.1.

  5. Elija la carpeta donde se almacenará la capa de teselas alojada.
  6. Opcionalmente, cambie las extensiones a las que la capa se mostrará arrastrando los extremos del Rango visible.
    Precaución:

    El sitio web del portal le presenta una sugerencia de rango de escala, 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 de alojamiento del portal. No cree teselas más allá de la precisión de los datos.

  7. Haga clic en Aceptar.

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

Definir y publicar un mapa en ArcGIS Pro

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

Nota:

Si las capas de ArcGIS Pro tienen aplicadas consultas de definición, ArcGIS aplica las consultas de definición a la capa de teselas alojada que se publique. Sin embargo, todos los datos se copian en ArcGIS Enterprise. Si solo desea publicar un subconjunto de datos, debe exportarlo a otra clase de entidad y publicarla.

Tenga en cuenta que los navegadores web no pueden mostrar 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. Consulte Crear servicios de entidades en la ayuda de ArcGIS Server para más información 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 guardar 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, ya que solo puede haber una opción activada cuando se copian datos.

  7. Proporcione un resumen y etiquetas para la capa de teselas.
  8. Especifique quién debe tener acceso a la capa de teselas alojada. 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 modifican 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 indica 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 y la velocidad y el ancho de banda de su red afectarán al tiempo necesario para la publicación.

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

Generar un paquete de teselas en ArcGIS Pro y cargarlo en su organización

Utilice la herramienta de geoprocesamientoCrear paquete de teselas de mapa para crear un paquete de teselas, agregar el paquete a su organización y publicar una capa de teselas.

  1. Abra el proyecto que contiene los datos que desee empaquetar.
  2. Abra y ejecute la herramienta de geoprocesamiento Crear paquete de teselas de mapa.
  3. Cuando haya terminado de generarse 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 en Contenido > Mi contenido.
  4. Agrega el paquete de teselas De mi equipo.
  5. Active la casilla situada junto a Publicar este archivo como una capa alojada.
  6. Escriba un título.
  7. Si el administrador de su portal ha configurado categorías de contenido, haga clic en Asignar categoría y seleccione hasta 20 categorías para que resulte más fácil encontrar su elemento. También puede usar el cuadro Filtrar categorías para acotar la lista de categorías.

    Las categorías están disponibles a partir de la versión ArcGIS Enterprise 10.6.1.

  8. Escriba los términos de las etiquetas separados por comas.

    Las etiquetas son palabras o frases cortas que describen un elemento y ayudan a las personas a encontrar su elemento durante sus búsquedas. Territorio federal se considera una etiqueta, mientras que Federal,territorio se consideran dos etiquetas.

  9. Haga clic en Agregar elemento.

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

Definir y publicar un mapa en ArcMap

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

Nota:

Si las capas de ArcMap tienen aplicadas consultas de definición, ArcGIS aplica las consultas de definición a la capa de teselas alojada que se publique. Sin embargo, todos los datos se copian en ArcGIS Enterprise. Si solo desea publicar un subconjunto de datos, debe exportarlo a otra clase de entidad y publicarla.

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 publicarlo de nuevo.

  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 de servicio. Aquí puede elegir lo que los usuarios pueden hacer con sus teselas y controlar de forma detallada cómo se van a exponer a los usuarios finales.

    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 necesitan 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 de servicio, haga clic en Funcionalidades y, a continuación, haga clic en Representación cartográfica en teselas para mostrar el mapa como una capa de teselas. Active Acceso a entidades para publicar una capa de entidades con sus teselas si desea configurar ventanas emergentes para la capa cuando la agregue al Map Viewer.

    Puede hacer clic en el elemento secundario Representación cartográfica en teselas situado el panel izquierdo del Editor de 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 memoria 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 de servicio, haga clic en Item Descripción 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 de 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 es privada, lo cual significa que únicamente usted puede acceder a ella. Puede compartirla con todo el mundo, con todos los miembros de su organización o con los miembros de algunos grupos.
  13. En el Editor de servicio, 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 de 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 de alojamiento en este punto. El tamaño de los datos y la velocidad y el ancho de banda de la conexión de red 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 su portal, la verá cuando expanda el nodo Mis servicios alojados en la ventana Catálogo.

La capa de teselas alojada aparece como dos elementos independientes en la pestaña 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.

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.

Hay dos formas de crear y compartir un paquete de teselas desde ArcMap.

  • Para empaquetar y compartir un volumen pequeño de datos (menos de 1 GB), cree y comparta el paquete de teselas directamente desde el mapa. Cuando se publica el paquete en el sitio web del portal, algunos elementos del documento de mapa, como la leyenda y los elementos de texto, se conservan.
  • Si tiene más de 1 GB de datos, use las herramientas de geoprocesamiento para empaquetar y compartir las teselas. Este método conserva los datos solo cuando las teselas se publican desde el paquete de teselas, lo que mejora el rendimiento de la creación.

Sugerencia:

Debe publicar una capa de entidades junto con la capa de teselas alojada si desea configurar ventanas emergentes.

Publicar paquetes de teselas pequeños

Si el paquete de teselas creado en ArcMap tiene menos de 1 GB, use el siguiente flujo de trabajo para publicar:

  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, elige 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 Uso compartido, 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 que ArcMap cree 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 generarse el 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 Contenido > 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 su portal. Debe ver la capa en Mi contenido.

Publicar paquetes de teselas grandes

Para generar y compartir volúmenes de datos grandes, Esri recomienda utilizar el conjunto de herramientas Caché de teselas en lugar de usar el flujo de trabajo anterior. Estas herramientas aprovechan diversas tareas de procesamiento para mejorar la generación de teselas y el rendimiento de publicación.

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. Ejecute Compartir paquete (en el conjunto de herramientas Paquete) para cargar las teselas en su portal.
  5. Una vez que haya terminado de generarse el 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 Contenido > Mi contenido.
  6. Haga clic en el paquete de teselas para mostrar la página de detalles del elemento.
  7. Haga clic en Publicar.
  8. Escriba el título y las etiquetas.
  9. Si el administrador de su portal ha configurado categorías de contenido, haga clic en Asignar categoría y seleccione hasta 20 categorías para que resulte más fácil encontrar su elemento. También puede usar el cuadro Filtrar categorías para acotar la lista de categorías.

    Las categorías están disponibles a partir de la versión ArcGIS Enterprise 10.6.1.

  10. Haga clic en Publicar.

Las teselas se desempaquetan y se crea una capa de teselas alojada en su portal. Debe ver la capa en Mi contenido.

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 debe seguir estos pasos para crear un archivo de definición de servicio que contenga los datos y la simbología necesarios para una capa de teselas alojada 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 de 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 Generar 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 de 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 su 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 haga clic en Contenido > 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. Si el administrador de su portal ha configurado categorías de contenido, haga clic en Asignar categoría y seleccione hasta 20 categorías para que resulte más fácil encontrar su elemento. También puede usar el cuadro Filtrar categorías para acotar la lista de categorías.

    Las categorías están disponibles a partir de la versión ArcGIS Enterprise 10.6.1.

  7. 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 consideran dos etiquetas.

  8. 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.

  9. Cuando la capa de teselas haya terminado de publicarse, 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 dirección 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.