Importante

A tradução é um esforço comunitário você pode contribuir. Esta página está atualmente traduzida em 89.62%.

5.4. Lesson: Actions

Agora que você viu uma ação padrão na lição anterior, é hora de definir suas próprias ações.

Uma ação é algo que acontece quando você clica em um recurso. Ele pode adicionar muitas funcionalidades extras ao seu mapa, permitindo que você recupere informações adicionais sobre um objeto, por exemplo. Atribuir ações pode adicionar uma nova dimensão ao seu mapa!

El objetivo de esta lección: Aprender como añadir acciones personalizadas.

Nesta lição você usará a camada escola_propriedade que você criou anteriormente. Os dados de amostra incluem fotos de cada uma das três propriedades digitalizadas. O que vamos fazer é associar cada imóvel à sua imagem. Em seguida, criaremos uma ação que abrirá a imagem de uma propriedade ao clicar na propriedade.

5.4.1. ★☆☆ Follow Along: Add a Field for Images

A camada escola_propriedade ainda não tem como associar uma imagem a uma propriedade. Primeiro vamos criar um campo para esta finalidade.

  1. Abre el cuadro de diálogo Propiedades de la capa.

  2. Haz clic en la pestaña Campos.

  3. Conmuta el modo de edición:

    ../../../_images/toggle_editing_mode.png
  4. Añade una nueva columna:

    ../../../_images/add_new_column.png
  5. Introduce los valores siguientes:

    ../../../_images/column_settings.png
  6. Após o campo ter sido criado, vá para a aba Formulário de atributos e selecione o campo imagem.

  7. Defina Tipo de Ferramenta para Acessório:

    ../../../_images/select_file_name.png
  8. Clique em OK na caixa de diálogo Propriedades da camada.

  9. Utiliza la herramienta Identificar para clicar en uno de los tres elementos en la capa propiedad_escolar.

    Como você ainda está no modo de edição, a caixa de diálogo deve estar ativa e ter esta aparência:

    ../../../_images/school_property_no_image.png
  10. Haz clic en el botón de búsqueda (the junto al campo imagen).

  11. Selecione o caminho para sua imagem. As imagens estão em dados_exercício/escola_propriedade_fotos/ e têm o mesmo nome dos recursos aos quais devem ser associadas.

  12. Haz clic en OK.

  13. Asocia todas las imágenes con los elementos correctos utilizando este método.

  14. Guarda tu cambios y sal del modo edición.

5.4.2. ★☆☆ Follow Along: Creating an Action

  1. Abra a aba Ações para a camada escola_propriedade, e clique em |Adicionar simbologia| :sup:Botão Adicionar uma nova ação.

    ../../../_images/layer_actions.png
  2. Na caixa de diálogo Adicionar nova ação, digite as palavras Mostrar imagem no campo Descrição:

    ../../../_images/show_image_action.png

    Qué hacer luego depende del sistema operativo que estés usando, así que elige el curso adecuado a seguir:

    • Windows

      Haz clic en el menú desplegable Tipo y elige Abrir.

    • Ubuntu Linux

      Em Açao, escreva eog para o Visualizador de imagens do Gnomo, ou escreva mostrar para usar Magia de Imagem. Lembre-se de colocar um espaço após o comando!

    • macOS

      1. Haz clic en el menú desplegable Tipo y elige Mac.

      2. Em Açao, escreva abrir. Lembre-se de colocar um espaço após o comando!

    Agora você pode continuar escrevendo o comando.

    Quieres abrir la imagen y QGIS sabe dónde está. Todo lo que necesita es decirle a la Acción dónde está la imagen.

  3. Selecciona imagen en la lista:

    ../../../_images/select_image.png
  4. Clique no botão Inserir campo. O QGIS adicionará a frase [% "imagem" %] no campo Texto de ação.

  5. Clique no botão OK para fechar a caixa de diálogo Adicionar nova ação

  6. Clique em OK para fechar a caixa de diálogo Propriedades da camada

Agora é hora de testar a nova ação:

  1. Clique na camada escola_propriedade no painel Camadas para que fique realçada.

  2. Encontre o |executar ação| Executar ação do recurso (na Barra de Atributos).

  3. Clique na seta para baixo à direita deste botão. Há apenas uma ação definida para esta camada até agora, que é a que você acabou de criar.

    ../../../_images/run_feature_action_select.png
  4. Haz clic en el propio botón para activar la herramienta.

  5. Utilizando esta herramienta, haz clic en cualquiera de las propiedades de escuela.

    A imagem dessa propriedade deve ser aberta.

5.4.3. ★★☆ Follow Along: Searching the Internet

Digamos que estamos olhando o mapa e queremos saber mais sobre a área em que uma fazenda está. Suponha que você não saiba nada sobre a área em questão e queira encontrar informações gerais sobre ela. Seu primeiro impulso, considerando que você está usando um computador agora, provavelmente seria pesquisar no Google o nome da área. Então vamos dizer ao QGIS para fazer isso automaticamente para nós!

  1. Abre la tabla de atributos para la capa landuse.

    Usaremos o campo nome para cada uma de nossas áreas de uso do solo para pesquisar no Google.

  2. Cierra la tabla de atributos.

  3. Vuelve a Acciones en Propiedades de la capa.

  4. Clique no botão Criar ações padrão para adicionar um número de ações pré-definidas.

  5. Remova todas as ações, exceto a ação Abrir URL com o nome curto Pesquisar na Web usando o comando |Remover simbologia| Remover a ação selecionada abaixo.

  6. Clique duas vezes na ação restante para editá-la

  7. Altere Descrição para Pesquisa do Google e remova o conteúdo do campo Nome curto.

  8. Certifique-se de que Telas esteja entre os escopos de ação verificados.

    Qué hacer luego depende del sistema operativo que estés usando, así que elige el curso adecuado a seguir:

    • Windows

      En Tipo, elige Abrir. Esto le dirá a Windows que abra una dirección de internet en tu buscador por defecto, como Internet Explorer.

    • Ubuntu Linux

      Em Ação, escreva xdg-abrir. Isso dirá ao Ubuntu para abrir um endereço de Internet em seu navegador padrão, como Chrome ou Firefox.

    • macOS

      Under Action, write open. This will tell macOS to open an Internet address in your default browser, such as Safari.

    Agora você pode continuar escrevendo o comando

    Para cualquier comando que uses, necesitarás decirle qué dirección de internet abrir luego. Quieres ir a Google y buscar la frase automáticamente.

    Normalmente, quando você usa o Google, insere sua frase de pesquisa na barra de pesquisa do Google. Mas, neste caso, você quer que seu computador faça isso por você. A maneira como você diz ao Google para pesquisar algo (se não quiser usar a barra de pesquisa diretamente) é fornecer ao seu navegador de Internet o endereço https://www.google.com/search?q=SEARCH_PHRASE , onde SEARCH_PHRASE` é o que você deseja pesquisar. Como ainda não sabemos qual frase procurar, apenas inseriremos a primeira parte (sem a frase de pesquisa).

  9. No campo Ação, escreva https://www.google.com/search?q=. Lembre-se de adicionar um espaço após o comando inicial antes de escrever isso!

    Agora você quer que o QGIS diga ao navegador para dizer ao Google para procurar o valor de nome para qualquer recurso que você possa clicar.

  10. Selecciona el campo name.

  11. Clique no botão Inserir:

    ../../../_images/google_search_action.png

    O que isto significa é que o QGIS vai abrir o navegador e enviá-lo para o endereço https://www.google.com/search?q=[% "name" %]. [% "name" %] diz ao QGIS para usar o conteúdo do campo nome como a frase para procurar.

    Portanto, se, por exemplo, a área de uso da terra em que você clicar for chamada de Reserva Natural de Marloth, o QGIS enviará o navegador para https://www.google.com/search?q=Marloth%20Nature% 20Reserve, que fará com que seu navegador visite o Google, que, por sua vez, procurará por “Reserva Natural de Marloth”.

  12. Se ainda não o fez, configure tudo conforme explicado acima.

  13. Clique no botão OK para fechar a caixa de diálogo Adicionar nova ação

  14. Clique em OK para fechar a caixa de diálogo Propriedades da camada

Ahora para comprobar la nueva acción.

  1. Com a camada uso da terra ativa no painel Camadas, clique na seta para baixo à direita do |executar ação| Executar ação do recurso e selecione a única ação (Pesquisa Google) definida para esta camada.

  2. Clique em qualquer área de uso do solo que você possa ver no mapa. Seu navegador será aberto e iniciará uma pesquisa no Google pelo local que está registrado como o valor nome dessa área.

Nota

Si tu acción no funciona, comprueba que todo está correctamente introducido; ¡ Los errores tipográficos son muy comunes en este tipo de trabajos!

5.4.4. ★★★ Follow Along: Open a Webpage Directly in QGIS

Acima, você viu como abrir uma página da Web em um navegador externo. Existem algumas deficiências com essa abordagem, pois adiciona uma dependência desconhecida – o usuário final terá o software necessário para executar a ação em seu sistema? Como você viu, eles não têm necessariamente o mesmo tipo de comando básico para o mesmo tipo de ação, se você não souber qual sistema operacional eles usarão. Com algumas versões do SO, os comandos acima para abrir o navegador podem não funcionar. Isso pode ser um problema insuperável.

No entanto, o QGIS fica no topo da biblioteca Qt incrivelmente poderosa e versátil. Além disso, as ações do QGIS podem ser arbitrárias, tokenizadas (ou seja, usando informações variáveis ​​com base no conteúdo de um atributo de campo) comandos Python!

Agora você verá como usar uma ação python para mostrar uma página da web. É a mesma ideia geral de abrir um site em um navegador externo, mas não requer nenhum navegador no sistema do usuário, pois usa a classe Qt Visualização da QWeb (que é uma ferramenta html baseado em webkit) para exibir o conteúdo em uma janela pop-up .

Vamos usar a Wikipedia desta vez. Portanto, a URL solicitada ficará assim:

https://wikipedia.org/wiki/SEARCH_PHRASE

Para crear la acción de capa:

  1. Abre el cuadro de diálogo Propiedades de la capa y ve directamente a la pestaña Acciones.

  2. Configure una nueva acción utilizando las siguientes propiedades para la acción:

    • Tipo: Python

    • Descrição: Wikipédia

    • Scope: Feature, Canvas

    • Action Text:

      from qgis.PyQt.QtCore import QUrl
      from qgis.PyQt.QtWebKitWidgets import QWebView
      
      myWV = QWebView(None)
      myWV.load(QUrl('https://wikipedia.org/wiki/[%name%]'))
      myWV.show()
      
    ../../../_images/python_action_example.png

    Hay un par de cosas ocurriendo aquí:

    • [%name%] será substituído pelo valor real do atributo quando a ação for invocada (como antes).

    • O código simplesmente cria uma nova instância QWebVisualizar, define sua URL, e então chama mostrar() nela para torná-la visível como uma janela na área de trabalho do usuário.

    Você também pode usar essa abordagem para exibir uma imagem sem exigir que os usuários tenham um visualizador de imagens específico em seu sistema.

  3. Tente usar os métodos descritos acima para carregar uma página da Wikipedia usando a ação da Wikipedia que você acabou de criar.

5.4.5. In Conclusion

Actions allow you to give your map extra functionality, useful to the end-user who views the same map in QGIS. Due to the fact that processes called can be shell commands for any operating system, as well as Python, the sky is the limit in terms of the functions you could incorporate!

5.4.6. What’s Next?

Agora que você fez todos os tipos de criação de vetoriais, você aprenderá a analisar os dados para resolver problemas. Esse é o tema do próximo módulo.