Skip To Content

Publicar camadas de mosaico hospedadas

As camadas publicadas e hospedadas no seu portal suportam visualização rápida de grandes conjuntos de dados utilizando mosaicos ou uma coleção de imagens de mapa pré-desenhadas. Os mosaicos hospedados fornecem um contexto geográfico para as camadas operacionais. Por exemplo, você pode incluir um mosaico de ruas no seu bairro para fornecer uma referência visual de sinais da rua na camada de serviço da feição.

Você pode publicar camadas de mosaico para serem hospedadas no seu portal utilizando qualquer um dos métodos seguintes:

Você pode construir um cache em mosaicos automaticamente ao publicar ou construir o cache manualmente após publicar. Consulte Melhores práticas para caches de mosaico para mais informações.

Para publicar uma camada de mosaico hospedada, você deve ser um membro de um dos seguintes em seu portal:

Publicar a partir de uma camada de feição hospedada

Você pode publicar uma camada de mosaico hospedada no seu portal utilizando uma camada de feição hospedada existente que você possua. Este é um fluxo de trabalho útil para visualizar conjuntos de dados grandes porque os mosaicos com cache gerado desenham mais rapidamente que feições renderizadas dinamicamente.

Anotação:

  • As edições de atributos espaciais feitas na camada de feição hospedada não são automaticamente refletidas na camada de mosaico hospedada. Você deve republicar a camada de mosaico hospedada a partir da camada de feição hospedada atualizada.
  • restrições de estilo na camada de feição hospedada que pode impedi-lo de publicar uma camada de mosaico hospedada.
  • Você não pode publicar uma camada de mosaico hospedada a partir de uma camada de feição de multipatch ou ponto hospedada na nuvem.

Siga estas etapas para publicar uma camada de mosaico hospedada a partir de uma camada de feição hospedada:

  1. Entre no seu portal e clique em Conteúdo > Meu Conteúdo.
  2. Para publicar, faça um dos seguintes:
    • Clique na camada de feição hospedada que você deseja publicar e clique em Publicar.
    • Clique em Criar > Camada de Mosaico e escolha uma Camada de Feição para publicar como mosaicos.
  3. Digite um título, tags e resumo para a camada de mosaico hospedada.
  4. Se seu administrador do portal configurou categorias de conteúdo, clique em Atribuir Categoria e selecione até 20 categorias para ajudar as pessoas a localizar seu item. Você também pode utilizar a caixa Filtrar categorias para reduzir a lista de categorias.

    As categorias estão disponíveis iniciando com ArcGIS Enterprise 10.6.1.

  5. Escolha a pasta onde a camada de mosaico hospedada será armazenada.
  6. Altere opcionalmente as extensões nas quais a camada será exibida arrastando os pontos finais da Faixa de Visibilidade.
    Aviso:

    O site da web do portal apresenta uma escala sugerida, mas você pode modificá-la. No entanto, esteja ciente que incluir grandes escalas na sua faixa de escala pode aumentar muito os recursos consumidos no seu servidor de hospedagem do seu portal. Não crie mosaicos além da precisão dos seus dados.

  7. Clique em OK.

    A camada de mosaico hospedada é criada e sua página do item aparece.

Definir e publicar um mapa no ArcGIS Pro

A partir de um mapa no ArcGIS Pro, você pode publicar uma camada de mosaico para ser hospedada no seu portal.

Anotação:

Se as camadas no ArcGIS Pro tiverem consultas de definição aplicadas a elas, o ArcGIS aplica as consultas de definição na camada de mosaico hospedada publicada. Porém, todos os dados são copiados no ArcGIS Enterprise. Se você deseja publicar um subconjunto de dados, você deverá exportar o subconjunto para outra classe de feição e publicá-lo.

Observe que os navegadores da web não podem exibir alguns dos símbolos cartográficos mais complexos que você pode ter utilizado originalmente quando criou o mapa. A maioria dos tipos de símbolos está disponível, mas em alguns casos os símbolos podem ser degradados ao publicá-los. Consulte Criar serviços da feição na ajuda do ArcGIS Server para mais detalhes sobre quais símbolos são suportados e faça quaisquer alterações exigidas na simbologia do mapa antes da publicação.

  1. Inicie o ArcGIS Pro e abra o projeto que contém o mapa que você deseja publicar.
  2. Certifique-se que sua conexão do portal esteja ativa e entre na sua organização utilizando uma conta que tenha privilégios para criar conteúdo e publicar camadas de mosaico hospedadas.
  3. Para publicar uma camada de feição, faça um dos seguintes:
    • Selecione as camadas no painel Conteúdo. Clique com o botão direito no conjunto de seleção e clique em Compartilhar como Camada da Web.
    • Para publicar todas as camadas no mapa, clique em Camada da Web no grupo Compartirlhar Como da guia Compartilhar e clique em Publicar Camada da Web.

    Dica:

    Se a opção do menu Compartilhar como Camada da Web não estiver ativa, pode ser devido a um dos seguintes:

    • A conta que você registrou não têm privilégios para publicar camadas hospedadas.
    • Seu portal não está configurado com um servidor de hospedagem, que é exigido para hospedar camadas da web.
    • Você está tentando publicar uma camada multipatch, que não é suportada.

  4. Digite um nome da camada de mosaico. A camada é salva em Meu Conteúdo por padrão. Você pode salvar em uma subpasta no Meu Conteúdo digitando o nome da pasta ou navegando até uma pasta existente.
  5. Escolha Copiar todos os dados.
  6. Ecolha Mosaico para Tipo de Camada.

    Isto desmarca automaticamente outras opções em Tipos de Camada, já que somente uma pode ser marcada de cada vez ao copiar os dados.

  7. Forneça um resumo e tags para a camada de mosaico.
  8. Especifique quem deve ter acesso à camada de mosaico hospedada. Todas as camadas que você publica são automaticamente compartilhadas na sua área de trabalho pessoal na sua organização (Meu Conteúdo). Seu conteúdo é inacessível para outros até que você o compartilhe com um ou mais do seguinte:
    • O nome do seu portal— A escolha desta opção permite que a camada seja compartilhada com todos os usuários autenticados no portal.
    • Todos—A seleção desta opção torna a camada disponível para qualquer usuário com acesso ao seu portal.
    • Grupos—Você pode compartilhar a camada com membros de grupos que você participa.
  9. Clique em Configuração e clique no botão Configurar Propriedades de Web da Camada para especificar as configurações do cache.
  10. Escolha um Esquema de Mosaico.
  11. Redimensione e arraste a barra Níveis de Detalhe para indicar a escala mínima e máxima para sua camada de mosaico.

    O tamanho estimado do cache resultante altera conforme você muda a escala mínima e máxima.

  12. Escolha quando e onde construir o cache do mosaico.
    • Escolha Gerar cache automaticamente no servidor se você desejar que os mosaicos sejam construídos no servidor de hospedagem do portal quando você publicar a camada.
    • Se você desejar que o cache seja construído e armazenado no servidor de hospedagem do portal, mas você deseja construí-lo após publicar, escolha Cache manualmente no servidor, abra a camada de mosaico no site da web do portal após a camada ser publicada e crie o cache manualmente.
    • Escolha Cache localmente e especifique um local na máquina do ArcGIS Pro para armazenar um pacote de mosaico temporário se você desejar que o cache seja construído e empacotado na máquina do ArcGIS Pro. O pacote de mosaico será transferido automaticamente para o servidor de hospedagem do portal a ser descompactado e o cache armazenado lá.
  13. Para permitir que os usuários baixem mosaicos de mapa para utilizar offline, marque Permitir que clientes exportem mosaicos com cache.
  14. Se você marcou Permitir que clientes exportem mosaicos com cache, utilize o campo Exportar limite para para especificar o número máximo de mosaicos que os clientes podem utilizar offline de uma vez.
  15. Clique na guia Conteúdo para confirmar que a camada de mosaico incluirá as camadas de dados que você deseja.
  16. Clique em Analisar para verificar quaisquer erros ou problemas.

    Quaisquer problemas descobertos são listados na guia Mensagens. Clique com o botão direito em cada mensagem para obter mais informações, leia a ajuda para o erro ou aviso e acesse as correções sugeridas. Você deve corrigir os erros antes de poder publicar. Opcionalmente, você pode corrigir os avisos para também melhorar o desempenho e aspecto da sua camada de mosaico hospedada.

  17. Após corrigir os erros e opcionalmente quaisquer avisos, clique em Publicar.
    Anotação:
    Os seus dados são copiados para o servidor neste momento. O tamanho dos dados e sua velocidade e largura de banda na rede afetam no tempo para publicar.

Ao completar a publicação, você poderá clicar em Gerenciar a camada da web para abrir o site da web do portal.

Construir um pacote de mosaico no ArcGIS Pro e transferir para sua organização

Utilize a ferramenta de geoprocessamento Criar Pacote de Mosaico do Mapa para criar um pacote de mosaico, adicionar o pacote na sua organização e publicar uma camada de mosaico.

  1. Abra o projeto que contém os dados que deseja criar o pacote.
  2. Abra e execute a ferramenta de geoprocessamento Criar Pacote de Mosaico do Mapa.
  3. Quando seu pacote de mosaico finalizar a geração, entre no seu portal utilizando uma conta com privilégios para criar conteúdo e publicar camadas de mosaico hospedadas e clique em Conteúdo > Meu Conteúdo.
  4. Adicione o pacote de mosaico Do meu computador.
  5. Marque a caixa de seleção Publicar este arquivo como uma camada hospedada.
  6. Digite um título.
  7. Se seu administrador do portal configurou categorias de conteúdo, clique em Atribuir Categoria e selecione até 20 categorias para ajudar as pessoas a localizar seu item. Você também pode utilizar a caixa Filtrar categorias para reduzir a lista de categorias.

    As categorias estão disponíveis iniciando com ArcGIS Enterprise 10.6.1.

  8. Digite os termos da tag separados por vírgulas.

    As tags são palavras ou pequenas frases que descrevem seu item e ajudam as pessoas a localizarem seu item quando procurados. Território federal é considerado uma tag, enquanto Federal, território é considerado duas tags.

  9. Clique em Adicionar Item.

Os mosaicos são descompactados e uma camada de mosaico hospedada é criada no seu portal. Você deve ser capaz de visualizar os mosaicos de mapa e pacote de mosaico em Meu Conteúdo.

Definir e publicar um mapa no ArcMap

No ArcMap, você pode publicar uma camada de mosaico para ser hospedada no seu portal.

Anotação:

Se as camadas no ArcMap tiverem consultas de definição aplicadas a elas, o ArcGIS aplica as consultas de definição na camada de mosaico hospedada publicada. Porém, todos os dados são copiados no ArcGIS Enterprise. Se você deseja publicar um subconjunto de dados, você deverá exportar o subconjunto para outra classe de feição e publicá-lo.

Certifique-se que o ArcGIS Desktop esteja conectado ao seu portal antes de iniciar o ArcMap.

  1. Inicie o ArcMap e abra o mapa que deseja publicar.
  2. Entre no seu portal com uma conta que tem privilégios para criar conteúdo e publicar camadas de mosaico hospedadas.
    1. Clique em Arquivo > Registrar.
    2. Digite seu nome de usuário e senha do portal, e clique em Entrar
  3. Agora, publique o mapa.
  4. Clique em Arquivo > Compartilhar Como > Serviço.
  5. Escolha Publicar um serviço e clique em Avançar.
    Aviso:

    Ao contrário, se você substituir o serviço, o item do serviço de mosaico do mapa existente será excluído do portal e um novo item será criado com o mesmo nome. O novo item é criado na pasta raiz e o item recebe um novo ID. Você deve reconfigurar o compartilhamento e, se necessário, mover o item de volta para a pasta que ele estava antes de republicado.

  6. Na lista suspensa dos tipos de conexão, escolha Meus Serviços Hospedados. Então digite um nome para seus mosaicos e clique em Continuar.
  7. Configure as propriedades que deseja no Editor de Serviço. Aqui você pode escolher o que os usuários podem fazer com o seu mosaico e obter a permissão para controlar como os mosaicos serão expostos para usuários finais.

    Para informações sobre como melhor configurar seus mosaicos para implementação, consulte Personalizar e configurar serviços na ajuda do ArcGIS Server. Algumas das propriedades referenciadas neste tópico se aplicam somente ao ArcGIS Server e não são aplicáveis ao trabalhar com camada de mosaico hospedadas.

    Dica:

    Se você fechar o Editor de Serviço durante esta sessão, você será solicitado para salvar o seu trabalho como um serviço de esboço. Os serviços de esboço permitem a você voltar ao trabalho de configuração do seu serviço posteriormente. Por padrão, os serviços de esboço são salvos na pasta Drafts da sua conexão para Meus Mapas Hospedados. Para mais informações, consulte Sobre serviços de esboço na ajuda do ArcGIS Server.

  8. Há algumas propriedades que você precisa configurar que são específicas para camadas de mosaico hospedadas. Estas propriedades são detalhadas nas seguintes etapas.
  9. No painel à esquerda do Editor de Serviço, clique em Recursos então marque Mapeamento de Mosaico para expor o seu mapa como uma camada de mosaico. Marque Acesso da Feição para publicar uma camada de feição com seus mosaicos se deseja configurar pop-ups para a camada ao adicioná-la no Map Viewer.

    Você pode clicar no subitem Mapeamento de Mosaico, no painel à esquerda do Editor de Serviço, para configurar propriedades avançadas relativas ao que os clientes podem realizar com a camada de mosaico publicada.

  10. Clique no item Gerar Cache para configurar as propriedades de cache do mosaico. Consulte Criando um cache de mapa na ajuda do ArcGIS Server para as etapas mais detalhadas, mantendo em mente que algumas das configurações de cache avançadas estão somente disponíveis ao publicar diretamente no ArcGIS Server.
  11. Na painel à esquerda do Editor de Serviço, clique em Descrição do Item e forneça o resumo e tags da camada de mosaico. Você precisará inserir estas informações antes que possa publicar. Para mais informações, consulte a seção de descrição do item em Configurando propriedades do serviço de mapa na ajuda do ArcGIS Server.
  12. No painel à esquerda do Editor de Serviço, clique em Compartilhar e escolha com quem a camada de mosaico hospedada deve ser compartilhada. Por padrão, sua camada de mosaico hospedada é privada, significando que é somente acessível por você. Você pode compartilhá-lo com todos, membros de sua organização ou membros de certos grupos.
  13. Em Editor de Serviço, clique em Analisar Analyze

    Este procedimento analisa seu mapa, para verificar se pode ser publicado. Você deve corrigir os Erros Error na janela Preparar antes que possa publicar. Opcionalmente, você pode corrigir os avisos e as mensagens informativas para melhorar o desempenho e o aspeto do seu mosaico publicado. ‎Para mais informações sobre como solucionar estes problemas, consulte Analisando seu recurso GIS na ajuda do ArcGIS Server.

  14. Opcionalmente clique em Visualizar Preview no Editor de Serviço. Isto pode lhe dar a idéia de como a sua camada de mosaico aparecerá quando visualizada na web.
  15. Após corrigir os erros e, opcionalmente, quaisquer avisos e mensagens, clique em Publicar Publish.
    Anotação:

    Os seus dados são copiados para o servidor de hospedagem neste momento. O tamanho dos dados e sua velocidade de conexão e largura de banda na rede afetam no tempo para publicar. Você também deve orçar algum tempo para gerar os seus mosaicos.

Após a camada de mosaico ser publicada no portal, você irá visualizá-la ao expandir o nó Meus Serviços Hospedados na janela Catálogo.

Sua camada de mosaico hospedada é listada como dois itens independentes na guia Meu Conteúdo do site da web do portal: Mosaicos e uma Definição de Serviço. A definição de serviço é um arquivo compactado, que contém o mapa, dados e detalhes sobre como os mosaicos devem ser publicados. Uma definição de serviço pode ser transferida e publicada em qualquer máquina executando o ArcGIS Server.

Construir e compartilhar um pacote de mosaico no ArcMap e publicar

O ArcMap permite a você construir mosaicos para um documento de mapa e armazená-los em um arquivo do pacote de mapa facilmente transferível (.tpk). Você pode criar um pacote de mosaico no ArcMap, compartilhá-lo no portal e publicá-lo como uma camada de mosaico hospedada.

Há dois modos que você pode criar e compartilhar um pacote de mosaico do ArcMap.

  • Para criar o pacote e compartilhar uma quantia pequena de dados (menos que 1 GB), crie e compartilhe o pacote de mosaico diretamente do seu mapa. Quando você publicar o pacote no site da web do portal, elementos do documento de mapa, tais como, a legenda e elementos de texto, são preservados.
  • Se você tiver mais que 1 GB de dados, utilize ferramentas de geoprocessamento para criar o pacote e compartilhar os mosaicos. Este método mantém somente os dados quando os mosaicos são publicados a partir do pacote de mosaico, que melhora a performance de criação de mosaico.

Dica:

Você deve publicar uma camada de feição junto com a camada de mosaico hospedada se desejar configurar pop-ups.

Publique pacotes de mosaico pequenos

Se o pacote de mosaico que você cria no ArcMap for menor que 1 GB, utilize o fluxo de trabalho seguinte para publicar:

  1. Abra seu mapa no ArcMap.
  2. Entre no seu portal com uma conta que tem privilégios para criar conteúdo e publicar camadas de mosaico hospedadas.
  3. Clique em Personalizar > Opções do ArcMap > Compartilhar e certifique-se que a ferramenta Habilitar ArcGIS Runtime esteja selecionada.

    Isto habilita a opção do menu que você utilizará na próxima etapa.

  4. No ArcMap, clique em Arquivo > Compartilhar Como > Pacote de Mosaico.
  5. Configure todos os parâmetros nas subetapas abaixo. Outras configurações são deixadas para sua escolha.
    1. Na guia Pacote de Mosaico, escolha Transferir pacote para minha conta do ArcGIS Portal.
    2. Na guia Formato do Mosaico, escolha ArcGIS Online / Bing Maps / Google Maps como Esquema do Mosaico.
    3. Na guia Descrição do Item, forneça os itens marcados como exigidos.
    4. Na guia Compartilhar, você pode optar por compartilhar o pacote com o público ou grupo específico.
  6. Clique em Compartilhar.

    Você pode ser solicitado para salvar seu mapa antes do ArcMap criar o pacote de mosaico.

    Pode levar um tempo para um pacote de mosaico ser gerado, especialmente se você tiver incluído grandes escalas.

  7. Ao finalizar a geração do pacote de mosaico, entre no seu portal utilizando a mesma conta que você utilizou quando criou o pacote de mosaico no ArcMap e clique em Conteúdo > Meu Conteúdo.
  8. Clique no seu pacote de mosaico para exibir sua página de detalhes do item.
  9. Clique em Publicar.
  10. Digite um título e tags e clique em Publicar.

Os mosaicos são descompactados e uma camada de mosaico hospedada é criada no seu portal. Você deve ver a camada em Meu Conteúdo.

Publicar grandes pacotes de mosaico

Para construir e compartilhar quantias grandes de dados, a Esri recomenda que você utilize o conjunto de ferramentas Cache de Mosaico em vez de utilizar o fluxo de trabalho anterior. Estas ferramentas podem aproveitar-se de núcleos de processamento múltiplos para melhorar geração de mosaico e performance de publicação.

Execute estas ferramentas na seguinte ordem:

  1. Execute a opção Gerar Esquema de Mosaico do Cache de Mosaico para definir a grade do mosaico e formato da imagem.
  2. Execute a opção Gerenciar Cache do Mosaico para construir os mosaicos.
  3. Execute a opção Exportar Cache do Mosaico para criar o pacote de mosaico.
  4. Execute Compartilhar Pacote (no conjunto de ferramentas Pacote) para transferir os mosaicos no seu portal.
  5. Ao finalizar a geração do pacote de mosaico, entre no seu portal utilizando a mesma conta que você utilizou quando criou o pacote de mosaico no ArcMap e clique em Conteúdo > Meu Conteúdo.
  6. Clique no seu pacote de mosaico para exibir sua página de detalhes do item.
  7. Clique em Publicar.
  8. Insira um título e tags.
  9. Se seu administrador do portal configurou categorias de conteúdo, clique em Atribuir Categoria e selecione até 20 categorias para ajudar as pessoas a localizar seu item. Você também pode utilizar a caixa Filtrar categorias para reduzir a lista de categorias.

    As categorias estão disponíveis iniciando com ArcGIS Enterprise 10.6.1.

  10. Clique em Publicar.

Os mosaicos são descompactados e uma camada de mosaico hospedada é criada no seu portal. Você deve ver a camada em Meu Conteúdo.

Publicar a partir de um arquivo da definição de serviço

A publicação de mosaicos e construção de um cache pode utilizar muitos recursos do servidor. Se você precisa publicar um grande número de camadas de mosaico, seus autores de mapa poderão criar um arquivo da definição de serviço (.sd) no ArcMap que contém todas as informações necessárias para publicar uma camada de mosaico no portal. Você pode então utilizar um script para transferir e publicar os arquivos da definição de serviço no seu portal após o horário comercial. As camadas de mosaico resultantes são hospedadas no seu servidor de hospedagem do portal.

Criar um arquivo de definição

O autor do mapa deve seguir estas etapas para criar um arquivo da definição do serviço contendo os dados e simbologia exigidos para uma camada de mosaico hospedada no portal.

  1. Inicie o ArcMap e entre no portal.
  2. Crie e salve um mapa.

    Para informações sobre criar e publicar um mapa, consulte os tópicos serviço de mapa na ajuda do ArcGIS Server.

  3. Agora, crie um arquivo da definição do serviço.
  4. Clique em Arquivo > Compartilhar Como > Serviço.
  5. Escolha Salvar um arquivo da definição de serviço e clique em Avançar.
  6. Clique em Escolher uma conexão e escolha Meus Serviços Hospedados na lista suspensa.
  7. Digite um nome para o novo arquivo e clique em Avançar
  8. Especifique em qual diretório na máquina cliente criar o arquivo da definição de serviço e clique em Continuar.

    O Editor de Serviço aparece.

  9. No painel à esquerda do Editor de Serviço clique em Gerar Cache.
  10. Escolha um Esquema de Mosaico.
  11. Escolha as escalas mínimas e máximas para os mosaicos e Calcular Tamanho do Cache.
  12. Clique em Construir cache manualmente após o serviço ser publicado.
  13. Opcionalmente, clique em Configurações Avançadas e defina as configurações de cache adicionais para o cache de mosaico.
  14. No painel à esquerda do Editor de Serviço clique em Descrição do Item e forneça as informações na sua camada de mosaico.

    Você deve fornecer pelo menos um resumo e tags antes de criar o arquivo da definição de serviço.

  15. Clique em Analisar Analyze para garantir que não há nenhum erro.

    Você deve corrigir quaisquer erros antes de executar o arquivo da definição de serviço. Opcionalmente, você pode fazer correções para quaisquer avisos e mensagens retornadas.

  16. Após corrigir os erros e opcionalmente quaisquer avisos e mensagens, clique em Fase Stage.

O arquivo da definição de serviço é salvo no local que você especificou.

Carregar a definição de serviço e publicar

Após obter o arquivo da definição de serviço a partir do autor, você poderá transferi-lo manualmente para seu portal e publicar uma camada de mosaico ou programar um script para transferir e publicar o arquivo.

Transferir e publicar manualmente

Entre no site da web do portal para adicionar e publicar o arquivo da definição de serviço no seu portal.

  1. Entre no seu portal como um membro com privilégios para criar conteúdo e publicar camadas de mosaico hospedadas e clique em Conteúdo > Meu Conteúdo.
  2. Clique em Adicionar Item.
  3. Escolha para carregar o arquivo do seu computador.
  4. Clique no botão de procurar e escolha o arquivo da definição de serviço.
  5. Selecione Publicar este arquivo como um serviço.
  6. Se seu administrador do portal configurou categorias de conteúdo, clique em Atribuir Categoria e selecione até 20 categorias para ajudar as pessoas a localizar seu item. Você também pode utilizar a caixa Filtrar categorias para reduzir a lista de categorias.

    As categorias estão disponíveis iniciando com ArcGIS Enterprise 10.6.1.

  7. Digite os termos da tag separados por vírgulas.

    As tags são palavras ou frases pequenas que descrevem o item e melhoram sua localização. Território federal é considerado uma tag, enquanto Federal, território é considerado duas tags.

  8. Clique em Adicionar Item para adicionar o arquivo da definição de serviço e publicar a camada de mosaico.

    A camada de mosaico é publicada no servidor de hospedagem do portal e ambos a definição de serviço e mosaicos são adicionados em Meu Conteúdo.

  9. Quando a camada de mosaico finaliza a publicação, você tem a opção para Iniciar a construção dos mosaicos. Clique nestes link para criar os mosaicos.

Por padrão, somente você tem acesso ao arquivo da definição de serviço e a camada de mosaico hospedada. Você pode compartilhar o arquivo e mosaicos com outros na sua organização ou grupos específicos.

Executar um script para transferir e publicar

Para carregar e publicar um arquivo da definição de serviço depois de horas, automatize o seguinte script para executar na sua máquina do GIS Server:

  1. Copie o seguinte script em um arquivo de texto e salve o arquivo com uma extensão .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. Crie um arquivo em lote ou script de shell que você programará para executar o script de Python.
  3. No arquivo, solicite o script de Python e forneça as opções específicas para seu site.

    Por exemplo, para executar o script publishServiceItem.py, digite a URL para seu portal, o nome de usuário com o qual conectar, a senha de usuário, o caminho para o arquivo da definição de serviço e um título para o serviço a ser criado. Neste exemplo, a URL do portal é https://portal.domain.com/arcgis/, o nome de usuário e senha são pub1 e pub.1, o caminho para o arquivo da definição de serviço é C:\maps\SDs\mymap.sd e o nome do serviço é studytiles.

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

    Dica:

    Alternativamente, você pode utilizar o seguinte script simplificado para carregar um arquivo da definição de serviço para seu portal, publicar uma camada de mosaico e construir um cache. Porém, você deve instalar pacotes de Python adicionais—Solicitações do PortalPy e Python—para executar este script. O PortalPy é instalado com Portal for ArcGIS. Consulte Script de tarefas administrativas com PortalPy na ajuda do Portal for ArcGIS para mais informações sobre instalar e utilizar 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 seu script para executar quando o uso do seu portal for mais baixo.

    Consulte Programando um script de Python para executar em tempos prescritos na ajuda de geoprocessamento do ArcGIS para mais informações sobre programar um script.