5.4. Lesson: Ações
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: Añadir un Campo para Imágenes
A camada escola_propriedade
ainda não tem como associar uma imagem a uma propriedade. Primeiro vamos criar um campo para esta finalidade.
Abre el cuadro de diálogo Propiedades de la capa.
Haz clic en la pestaña Campos.
Conmuta el modo de edición:
Añade una nueva columna:
Introduce los valores siguientes:
Após o campo ter sido criado, vá para a aba Formulário de atributos e selecione o campo
imagem
.Defina Tipo de Ferramenta para Acessório:
Clique em OK na caixa de diálogo Propriedades da camada.
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:
Haz clic en el botón de búsqueda (the … junto al campo imagen).
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.Haz clic en Aceptar.
Asocia todas las imágenes con los elementos correctos utilizando este método.
Guarda tu cambios y sal del modo edición.
5.4.2. Follow Along: Creando una Acción
Abra a aba Ações para a camada escola_propriedade, e clique em |Adicionar simbologia| :sup:Botão Adicionar uma nova ação.
Na caixa de diálogo Adicionar nova ação, digite as palavras
Mostrar imagem
no campo Descrição: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 escrevamostrar
para usar Magia de Imagem. Lembre-se de colocar um espaço após o comando!macOS
Haz clic en el menú desplegable Tipo y elige Mac.
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.
Selecciona imagen en la lista:
Clique no botão Inserir campo. O QGIS adicionará a frase
[% "imagem" %]
no campo Texto de ação.Clique no botão OK para fechar a caixa de diálogo Adicionar nova ação
Clique em OK para fechar a caixa de diálogo Propriedades da camada
Agora é hora de testar a nova ação:
Clique na camada escola_propriedade no painel Camadas para que fique realçada.
Encontre o |executar ação| Executar ação do recurso (na Barra de Atributos).
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.
Haz clic en el propio botón para activar la herramienta.
Utilizando esta herramienta, haz clic en cualquiera de las propiedades de escuela.
A imagem dessa propriedade deve ser aberta.
5.4.3. Follow Along: Buscando en 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!
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.Cierra la tabla de atributos.
Vuelve a Acciones en Propiedades de la capa.
Clique no botão Criar ações padrão para adicionar um número de ações pré-definidas.
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.
Clique duas vezes na ação restante para editá-la
Altere Descrição para
Pesquisa do Google
e remova o conteúdo do campo Nome curto.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
, ondeSEARCH_PHRASE`
é o que você deseja pesquisar. Como ainda não sabemos qual frase procurar, apenas inseriremos a primeira parte (sem a frase de pesquisa).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.Selecciona el campo name.
Clique no botão Inserir:
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 camponome
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 parahttps://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”.Se ainda não o fez, configure tudo conforme explicado acima.
Clique no botão OK para fechar a caixa de diálogo Adicionar nova ação
Clique em OK para fechar a caixa de diálogo Propriedades da camada
Ahora para comprobar la nueva acción.
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.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: Abrir una Página Web Directamente en 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:
Abre el cuadro de diálogo Propiedades de la capa y ve directamente a la pestaña Acciones.
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()
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 chamamostrar()
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.
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
As ações permitem que você dê ao seu mapa funcionalidade extra, útil para o usuário final que visualiza o mesmo mapa no QGIS. Devido ao fato de que você pode usar comandos shell para qualquer sistema operacional, assim como Python, o céu é o limite em termos de funções que você pode incorporar!
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.