Attribute table — Configure the attribute table and the vector selection
Princípio
Lizmap is designed to show spatial data in the main map, and you can propose users to see an object data through the «popup» feature (a small popup containing the objects data is shown whenever the user clicks on the map ). See Popup
Sometimes this is not enough, and as a map editor, you would like the user to see all the data of a specific layer, as you can do in QGIS by opening the attribute table.
Nota
When activating the attribute table on a layer, it also activates :
graphical selection tools
export of features as a file
Pré-requisitos
The layer must be published as WFS (see WFS/OAPI) and the primary key must be published as well in the Layer properties.
Configuring the tool
At the layer level
No separador Ferramentas do diálogo do plugin do Lizmap, há um grupo chamado «Tabela de atributos» que mostra uma tabela e alguns campos de formulário dedicados para adicionar ou remover camadas vetoriais.
Para adicionar uma camada a esta ferramenta:
Click the button.
Camada: Escolha uma das camadas vetoriais (espaciais ou não). Pode ser qualquer formato de camada vetorial: GeoJSON, Shapefile, PostGIS, CSV, etc.
ID único: A ferramenta de tabela de atributos tem de conseguir definir cada elemento como único. Recomendamos vivamente que adicione esse campo se a sua camada ainda não tiver nenhum. Geralmente, o campo ID único contém inteiros. Se a camada não tiver esse tipo de campo, pode criá-lo facilmente com a Calculadora de campo. Escolha o tipo de campo correto a partir da caixa de combinação.
Campos a ocultar Existem 2 formas de ocultar campos na tabela de atributos publicada.
In the vector layer properties dialog of the QGIS vector layer, in the Fields tab, you can uncheck the checkbox of the column WFS for the fields to unpublish. This means this fields will not be published via the WFS protocol. This is the simplest and safest way to restrict the publication to some fields (for example to get rid of sensitive fields)
Pode utilizar a opção Campos a ocultar para ocultar os campos de dados na apresentação da tabela de atributos. Os campos ocultos não serão visíveis para o utilizador final, mas ainda estarão disponíveis para o Lizmap Web Client. Deve utilizar esta opção para ocultar o campo ID único. Se utilizar a primeira forma (desmarcando a coluna WFS), o ID exclusivo não será utilizável pelo Lizmap e alguns dos recursos da tabela de atributos não funcionarão corretamente.
Let the Pivot table unchecked. This is for relation.
Let the Hide in child sub-panels unchecked. This is for relation.
Let the Hide layer in the list unchecked. This is for relation.
To edit a layer in the table, select it and click the button or double click on the row.
To remove a layer from the table, select it and click the button.
To move a layer up or down, select it and click or buttons. The order will change in Lizmap too.
Fields will be displayed with their alias if it’s defined. See Add a alias on a field.
At the project level
Order of fields
Lizmap is reusing the order of the fields defined in the attribute table.
Open your attribute table.
Right click on a column header.
Click organize Columns…
Drag and drop columns.
When defining a custom order, it should automatically alter the checkbox called Custom configuration.
Download data
By adding the layer in the attribute table tool, this will also enable the download capability on that layer. By default, only GeoJSON and GML are available. By installing the WfsOutputExtension plugin on QGIS Server, you can add more formats such as Geopackage, ODS, CSV, XLSX …. Read https://github.com/3liz/qgis-wfsOutputExtension
Using with relations
No QGIS, pode configurar relações entre camadas, na caixa de diálogo Propriedades do projeto. Se publicar no Lizmap mais de uma camada na ferramenta de atributos das camadas e se algumas camadas fizerem parte de uma relação, o utilizador final poderá ver tabelas subordinadas na tabela de atributos de camadas mãe. Um clique numa das linhas da tabela mãe irá despoletar o filtro de conteúdo na tabela filha.
Por exemplo, poderia ter uma camada respeitante a cidades, e uma camada filha de edifícios públicos. Clicando numa cidade na tabela de atributos fará com que a tabela filha de edifícios públicos atualize seu conteúdo apenas com os edifícios públicos correspondentes à cidade selecionada.
Pode usar as relações «muito-para-muito» (N:M) no QGIS desde a versão 2.14 mas o Lizmap ainda não as usa automaticamente. Tem também de definir as relações no plugin Lizmap. Em muitos casos, as relações N:M são muito úteis. Por exemplo, pode ter as seguintes três camadas vetoriais no seu projeto:
Linhas de elétrico: este nome de camadas «Linhas» contém um elemento por linha de elétrico, e tem um campo ID único tram_id
Paragens do elétrico: esta camada chamada «Paragens» contém um elemento por paragens de elétrico, com um campo ID único chamado stop_id
Tabela de correspondência entre Linhas e Paragens: esta camada chamada «Pivot» é uma tabela dinâmica entre linhas de elétrico e paragens, uma vez que uma paragem pode ser utilizada por mais de uma linha e uma linha serve muitas paragens. Os campos são os seguintes : tram_id, stop_id e order que define a ordem de paragem na linha.
Pode adicionar 2 relações nas propriedades do projeto QGIS: uma entre Linhas e Pivot utilizando o campo tram_id e outra entre Paragens e Pivot utilizando o campo stop_id.
No Lizmap, adicionámos uma forma simples de configurar a relação de N:M. Pode simplesmente
Crie as duas relações tal como descritas acima na caixa de diálogo de propriedades do projeto QGIS, separador Relações
Adicione as camadas Linhas e Paragens na ferramenta de atributos das camadas
Adicione a camada Pivot na ferramenta de atributos das camadas com a opção Tabela dinâmica marcada
O Lizmap Web Client irá então tratar a relação como uma relação de N:M:
A tabela dinâmica será apresentada para cada tabela de atributos mãe e mostrará apenas as filhas correspondentes.
O recurso de filtro baseado nas camadas de atributos ativará o filtro em cascata relativo à tabela dinâmica e à outra tabela mãe. Por exemplo, se o utilizador usar o filtro para mostrar apenas uma linha de elétrico, o Lizmap também mostrará apenas as paragens correspondentes no mapa e na tabela de atributos Paragens
Tips
If one of the field contains a media path, such as media/a_folder/my_image.jpg
,
Lizmap will display a link allowing the user to open the media file (image, video, PDF, etc.)
in a new browser tab.
If the media points to an image (a JPG or PNG file), you could add new column showing
a small image preview of the source image by adding a new virtual field in your vector layer,
with this expression (which create an image with a data attribute containing the image path and a CSS class data-attr-thumbnail
). In the example below, the field containing the media path is media_path
and the virtual field is named vignette
:
concat(
'<img class="data-attr-thumbnail" data-src="',
"media_path" ,
'" src="/themes/default/css/img/logo_footer.png" style="height:60px;">'
)
The result will look like: