Como definir um valor padrão para atributos em shapefiles?


8

No QGIS 2.14.6, eu gostaria de definir um valor padrão para um atributo em um shapefile (ou camada spatialite também) que é aplicado se o usuário não definir explicitamente o valor.

Existe uma maneira de conseguir isso usando ferramentas / configurações padrão (sem python)?


1
Mas, além de esses campos virtuais não serem atributos "reais" da minha fonte de dados (tanto quanto eu sei armazenados apenas no projeto), como diria a um campo virtual para reagir às edições dos usuários de maneira a definir seu valor, digamos 3.1415926, se o usuário não definir um valor de atributos? E isso pode ser convertido em atributos reais? Perguntas sobre perguntas ... Além disso, 'sem python' não era obrigatório, eu ficaria bem mesmo se conseguisse isso com 'um pouco de python' ;-) (E onde está o comentário de @ Joseph?)
Jochen Schwarze

Desculpe, removi meu comentário: "Você pode usar campos virtuais" para fornecer um método possível usando um plugin =)
Joseph

verifique esta pergunta, mas é um código python. gis.stackexchange.com/questions/192105/…
Fran Raga

Respostas:


16

QGIS 3

Selecione a camada no painel de camadas e clique com o botão esquerdo. Selecione propriedades. Selecione o "Formulário de atributos", como mostrado abaixo. Selecione os campos da lista "Widgets disponíveis" como mostrado. Forneça uma expressão para o valor padrão na caixa de diálogo "Padrões". Se a opção "Aplicar valor padrão na atualização" estiver marcada, o valor será ajustado toda vez que a geometria do recurso ou outro atributo for alterado. Isso possibilita coisas como um carimbo de data / hora "last_modified" ou uma "área" atualizada.

Definir valor padrão do campo QGIS 3.0.3


QGIS 2.18

A partir do QGIS 2.18, isso é possível sem nenhuma ferramenta extra.

Basta acessar as propriedades do campo, clicar no botão no campo em que você deseja atribuir um valor padrão e inserir uma expressão. Também pode receber a geometria como entrada.

insira a descrição da imagem aqui

Sidenote: Eu sei que a pergunta original tem como alvo o QGIS 2.14, mas acho que isso ainda é do interesse dos futuros leitores dessa pergunta.


1
Definitivamente de interesse;)
Joseph

1
Acabei de dar uma olhada no recurso em 2.17. Exatamente o que eu estava procurando.
Jochen Schwarze

7

Existe o plug- in AutoFields, que permite criar (ou modificar) campos de atributos e atualizá-los automaticamente com uma expressão personalizada .

Também foi testado com vários formatos e os campos automáticos não são considerados campos virtuais (citados na página inicial do plugin ):

Os AutoFields funcionam com o formato vetorial 'X'?

Já testamos AutoFields nas camadas PostgreSQL / PostGIS, SpatiaLite , Shapefiles, WFS-T (Serviço de Recurso Transacional da Web) e Memória. Informe-me se você usa campos automáticos em outros formatos vetoriais.

Os campos automáticos são como campos virtuais?

Não. Ao contrário dos campos virtuais, os campos automáticos:

  • Armazene valores calculados nos dados;
  • São independentes dos projetos QGIS, ou seja, você pode alternar entre projetos QGIS e o AutoFields ainda funcionará;
  • Trabalhe apenas em camadas vetoriais editáveis.

5

Como eu gostaria de usar esses valores de atributos mencionados acima para controlar alguns aspectos da simbologia (tamanho do símbolo, opacidade), algumas pesquisas adicionais revelaram que, com propriedades definidas por dados, existe outra maneira excelente (e flexível) de conseguir isso. Uma expressão (genérica)

if("attribute_name" is null, @default_value, "attribute_name")

onde @default_valueé definido como uma variável de projeto, retorna um padrão que pode ser definido pelo usuário quando nenhum valor é definido para o atributo attribute_namee ele é outro valor.

Defina variáveis ​​nas propriedades do projeto:

insira a descrição da imagem aqui

Configure uma expressão com propriedades definidas por dados (neste caso, cor vermelha com opacidade definida pelo usuário):

insira a descrição da imagem aqui

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.