QField PostGIS: do terreno ao mapa web, sem exportar

Publicado a 11 min de leitura

Este guia destina-se às equipas que recolhem com o QField e querem encontrar os dados numa base PostGIS, e depois num mapa Lizmap, sem exportação nem cópia manual. Descreve a cadeia QField PostGIS completa, o que preparar no projeto QGIS e o que faz cada elo.

A cadeia terreno, PostGIS, Lizmap

Três programas livres, três papéis. O QField recolhe no telemóvel. O PostgreSQL e o PostGIS guardam os dados espaciais. O Lizmap, servido pelo QGIS Server, publica o projeto QGIS como mapa web. O elo que os une é o serviço de sincronização: o LizPack Field, que assenta na mesma tecnologia de sincronização que o QFieldCloud e funciona com a aplicação QField oficial.

  1. O técnico regista um dado no QField, com ou sem rede.
  2. De regresso à rede, sincroniza: as alterações sobem para o LizPack Field.
  3. Com o plano Pro, o LizPack Field escreve os dados diretamente nas camadas PostGIS do projeto.
  4. O mapa Lizmap que mostra essas camadas PostGIS é atualizado a cada sincronização, sem intervenção.

O LizPack é uma infraestrutura geoespacial de código aberto: não é o autor de nenhum destes programas, aloja-os, liga-os e mantém-nos. Veja o que faz o LizPack.

O interesse desta cadeia está na ausência de passos manuais. Sem ela, é preciso recolher os ficheiros de cada técnico, fundi-los, corrigir duplicados, reimportar tudo na base e republicar o mapa: outras tantas ocasiões de perder ou duplicar registos, e dias de atraso entre o terreno e o que veem os decisores.

O que é preciso para ligar o QField ao PostGIS

ElementoPapelNo LizPack
Plano Pro do LizPack FieldEscreve os dados no PostGIS.Projetos ilimitados, até 5 colaboradores, ligação PostGIS.
Base PostGISRecebe e guarda os dados.Uma base dedicada de 1 a 10 GB, PostgreSQL 17 e PostGIS 3.5, ligação SSL, ou a base incluída numa instância LizPack Map Basic ou Pro.
Projeto QGISDefine camadas, formulários e estilos.Preparado no seu computador com o QGIS Desktop.
Instância LizmapPublica o mapa web.LizPack Map, o alojamento Lizmap do LizPack, com Lizmap e QGIS Server já ligados ao PostGIS.

Com o plano Gratuito do LizPack Field, os dados ficam nos ficheiros do projeto, que recupera no QGIS: a ligação PostGIS exige o plano Pro, a 15 USD por mês à data da redação. Preços atuais na página de preços.

Todos estes elementos se gerem a partir da mesma conta LizPack: a base, a instância LizPack Map e o LizPack Field partilham a mesma ligação. Não precisa, por isso, de credenciais distintas para cada serviço, e a ligação entre a base e a instância faz-se a partir da área de cliente, sem trabalho no servidor.

Escolher a sua instância LizPack Map

O mapa web da cadeia QField PostGIS é servido pelo Lizmap. No LizPack, é esse o papel do LizPack Map: uma instância Lizmap no seu subdomínio, com QGIS Server, uma base PostGIS e uma cache de mosaicos, online em cerca de quatro minutos, com um certificado HTTPS renovado automaticamente.

Plano LizPack MapO que conta para a cadeia de terreno
FreeTeste gratuito de 30 dias, sem cartão: o suficiente para montar e testar toda a cadeia antes de se comprometer.
BasicUma instância com o seu QGIS Server. Suficiente para publicar um mapa que lê uma base dedicada.
ProDuas instâncias, ligação direta à base da instância a partir do QGIS Desktop ou do pgAdmin, atualizações do Lizmap e do QGIS Server incluídas, até cinco colaboradores.
EnterpriseMediante orçamento.

São possíveis duas montagens. Ou os dados vão para uma base dedicada, criada à parte e dimensionada de 1 a 10 GB, que a instância e o LizPack Field leem. Ou vão para a base incluída na instância. A base dedicada tem a vantagem de ser independente da instância: pode mantê-la se mudar de instância.

Preços à data da redação: LizPack Map Basic 10 USD por mês, Pro 20 USD por mês. Preços atuais na página de preços.

Preparar as camadas PostGIS no projeto QGIS

A regra central: as camadas de recolha têm de ser camadas PostGIS no projeto QGIS, e não ficheiros locais. São essas camadas que o LizPack Field alimenta.

  1. No QGIS, acrescente a ligação à sua base PostGIS com o anfitrião, a porta e as credenciais fornecidos na criação.
  2. Crie as tabelas de recolha na base, com uma chave primária de incremento automático e uma coluna de geometria com o tipo e o sistema de coordenadas certos.
  3. Acrescente essas tabelas ao projeto como camadas PostGIS e configure os formulários: listas de valores, restrições, valores por omissão, fotografias.
  4. Acrescente os mapas de fundo e as camadas de contexto úteis no terreno.
  5. Guarde o projeto e publique-o no LizPack Field a partir do QGIS.
  • Uma chave primária fiável evita conflitos quando vários técnicos criam elementos offline ao mesmo tempo.
  • Mantenha nomes de campos simples, sem espaços nem acentos: serão mais fáceis de usar em SQL e no Lizmap.
  • Teste um ciclo completo com um único técnico antes de abrir o projeto a toda a equipa.

Exemplo: uma tabela de recolha pronta para o QField

Eis uma tabela de pontos de água tal como se pode criar na base, a partir do gestor de bases de dados do QGIS ou do pgAdmin. Aplica as regras da secção anterior.

CREATE SCHEMA IF NOT EXISTS recolha;

CREATE TABLE recolha.pontos_agua (
  id serial PRIMARY KEY,
  tipo_obra text NOT NULL,
  estado text NOT NULL,
  data_registo timestamptz DEFAULT now(),
  tecnico text,
  fotografia text,
  validado boolean DEFAULT false,
  geom geometry(Point, 4326) NOT NULL
);

CREATE INDEX ON recolha.pontos_agua USING gist (geom);

CREATE VIEW recolha.pontos_agua_validados AS
  SELECT * FROM recolha.pontos_agua WHERE validado;
  • id serial: uma chave primária numerada automaticamente pela base, o que evita colisões entre técnicos.
  • NOT NULL no tipo e no estado: a base recusa um registo incompleto, além das restrições do formulário.
  • DEFAULT now(): a data de registo preenche-se sozinha.
  • geometry(Point, 4326): um tipo e um sistema de coordenadas explícitos, que o QGIS e o Lizmap leem sem ambiguidade.
  • O índice espacial acelera a apresentação no QGIS e no mapa Lizmap à medida que o número de registos cresce.
  • A vista dos registos validados alimenta o mapa público: só aparecem os elementos marcados como validados pelo responsável.

Depois, acrescente a tabela ao projeto QGIS como camada PostGIS, configure o formulário e acrescente a vista ao projeto publicado no Lizmap. Adapte o sistema de coordenadas ao seu país se os seus dados de referência usarem outro.

Mostrar os dados no Lizmap

Para o mapa web, publique na sua instância Lizmap um projeto QGIS que leia as mesmas camadas PostGIS. Pode ser o próprio projeto de recolha ou um projeto de consulta distinto, com outros estilos e sem os campos internos. Carregue-o a partir do navegador ou do QGIS com a extensão LizPack Publisher, como descrito em publicar um projeto QGIS online.

Como o Lizmap lê diretamente a base, não há nada a republicar depois de uma campanha: cada sincronização do QField atualiza a base, e o mapa mostra o estado atual no carregamento seguinte. As camadas PostGIS servidas pelo Lizmap também podem ser editadas online, a partir do escritório.

Para partilhar os dados por ligação sem projeto Lizmap, o LizPack Viewer, incluído no LizPack Field, compõe um mapa com as camadas dos seus projetos. Veja criar um mapa online e partilhá-lo.

Se pessoal de escritório tiver de corrigir registos a partir do mapa web, ative a edição da camada na configuração Lizmap do projeto, com o plugin Lizmap do QGIS, e limite-a aos grupos de utilizadores em causa. As correções são escritas na mesma tabela PostGIS que os registos do QField.

Verificar que a cadeia funciona

Antes de abrir a campanha a toda a equipa, faça um ciclo completo e controle cada elo. Se um registo não chega ao fim, esta lista ajuda a encontrar onde para.

  1. Num telemóvel, registe um elemento de teste no QField e sincronize.
  2. No painel do LizPack Field, confirme que a alteração aparece entre as alterações recebidas e no registo de processamentos.
  3. No QGIS Desktop, abra a tabela PostGIS e procure o elemento pela data ou pelo técnico.
  4. Abra o mapa Lizmap e recarregue a página: o elemento deve aparecer, ou aparecer só na vista pública depois de validado.
  5. Apague o elemento de teste e confirme que a eliminação se reflete em todo o lado.
  • A alteração não aparece no LizPack Field: a sincronização não terminou; verifique a rede do telemóvel e volte a lançá-la.
  • Aparece no LizPack Field mas não no PostGIS: confirme que a conta está no plano Pro e que a camada do projeto é mesmo uma camada PostGIS, não um ficheiro local.
  • Está no PostGIS mas não no mapa: confirme que o projeto Lizmap lê a mesma tabela ou a vista certa, e que o elemento cumpre o filtro da vista.

Vários técnicos a trabalhar na mesma base

Logo que vários técnicos recolhem nas mesmas camadas PostGIS, algumas regras evitam conflitos e dados incoerentes. Decidem-se ao preparar o projeto, não depois da primeira campanha.

  • Criar em vez de alterar. As criações de elementos combinam-se sem dificuldade: cada técnico acrescenta os seus próprios pontos. As alterações ao mesmo elemento por dois técnicos são mais delicadas; atribua setores para que um elemento existente só seja tocado por uma pessoa.
  • Registar a origem de cada dado. Acrescente campos para o autor e a data de registo, preenchidos automaticamente por uma expressão. Servem o controlo de qualidade e as estatísticas de acompanhamento.
  • Separar recolha e divulgação. Os técnicos escrevem nas tabelas de recolha; o mapa público lê uma vista que só mostra os dados validados. O responsável valida no escritório alterando um campo de estado.
  • Manter as camadas de referência só de leitura. Limites administrativos, cadastro ou redes existentes servem de contexto no terreno e não precisam de ser alterados a partir do QField.

Outro ponto a prever: a evolução do modelo de dados. Acrescentar um campo a uma tabela PostGIS a meio de uma campanha é possível, mas o projeto QGIS tem então de ser atualizado e republicado no LizPack Field, e os técnicos têm de descarregar a nova versão antes de continuar. Agrupe estas mudanças e faça-as entre campanhas, avisando a equipa.

Por fim, pense no volume. As fotografias tiradas no terreno ocupam depressa mais espaço do que os próprios dados. Vigie o espaço do seu plano LizPack Field e da sua base, e escolha uma resolução de fotografia razoável no formulário.

Antes de cada nova campanha, faça um ponto rápido com a equipa: que camadas estão abertas a registo, que setores estão atribuídos a quem, que campos mudaram. Cinco minutos de coordenação evitam horas de limpeza na base, e o mapa Lizmap publicado mantém-se coerente para quem o consulta.

Aproveitar a base QField PostGIS

Uma vez no PostGIS, os dados ficam acessíveis a todas as suas ferramentas sem exportação: QGIS Desktop, pgAdmin, DBeaver, os seus scripts e o GeoServer se publicar serviços OGC com o GeoServer Cloud.

  • Consultas SQL de acompanhamento: elementos levantados por dia, por técnico, por zona.
  • Vistas para o mapa público que escondem os campos internos.
  • Controlos de qualidade: geometrias inválidas, campos obrigatórios vazios, duplicados.
  • Vigilância do espaço: mensagens de correio eletrónico avisam logo que a base atinge 60 % do seu volume, e depois aos 75, 80, 90 e 95 %.

Para a preparação do projeto e o trabalho dos técnicos no terreno, veja o guia de recolha de dados no terreno com QField.

Como a base é uma base PostgreSQL normal, também pode recuperar o seu conteúdo a qualquer momento com as ferramentas habituais do PostgreSQL, para um arquivo ou uma transferência.

Erros frequentes na cadeia QField PostGIS

  • Recolher num GeoPackage a pensar que se está a preencher o PostGIS. Só as camadas PostGIS do projeto são escritas na base; uma camada de ficheiro fica nos ficheiros do projeto.
  • Uma tabela sem chave primária. O QGIS carrega-a por vezes só de leitura ou trata-a mal; acrescente sempre uma chave primária antes de publicar.
  • Um sistema de coordenadas diferente entre a tabela e o projeto. Os elementos aparecem no sítio errado ou não aparecem; fixe-o ao criar a tabela.
  • Alterar a estrutura a meio da campanha sem republicar. Os técnicos trabalham na versão antiga do projeto e alguns campos não sobem.
  • Publicar a tabela em bruto no mapa público. Os registos não controlados e os campos internos ficam visíveis; use uma vista.

Nenhum destes erros é grave se for detetado no teste descrito acima. É por isso que o ciclo completo com um único técnico continua a ser o passo mais rentável de toda a instalação.

Perguntas frequentes

O QField pode escrever diretamente no PostGIS?

Com o LizPack Field no plano Pro, sim: as camadas PostGIS do projeto recebem os dados diretamente a cada sincronização. Com o plano Gratuito, os dados ficam nos ficheiros do projeto.

Não para recolher: o projeto fica guardado no dispositivo. A ligação só é necessária para sincronizar, e é aí que os dados chegam ao PostGIS.

Publique na sua instância Lizmap um projeto QGIS que leia as mesmas camadas PostGIS. O mapa é atualizado a cada sincronização, sem republicar.

Uma base dedicada LizPack de 1 a 10 GB, ou a base incluída numa instância LizPack Map Basic ou Pro. Ambas são acessíveis a partir do QGIS Desktop.

Sim. O plano Pro aceita até 5 colaboradores; use uma chave primária de incremento automático em cada tabela de recolha.

Soluções citadas

Todos os guias

Pronto para implementar?

Avaliação gratuita de 30 dias, sem compromisso e sem cartão bancário.