# This file contains metadata for your plugin.

[general]
name=TairuDB
name[pt_br]=TairuDB
qgisMinimumVersion=3.20
qgisMaximumVersion=4.99
description=Connect QGIS to Tairu Maps (https://tairumaps.com) for two-way cloud sync, editable field records, and offline .tairudb map generation.
description[pt_br]=Conecte o QGIS ao Tairu Maps (https://tairumaps.com) para sincronização em nuvem nos dois sentidos, registros editáveis e geração de mapas offline .tairudb.
version=2.0.13
author=Daniel Hulshof Saint Martin
email=daniel.hulshof@gmail.com

about=TairuDB adds a Tairu Maps dock to QGIS for field-mapping workflows. Sign in with your Tairu Maps account using e-mail, Google, or Apple, browse your maps, and exchange data in both directions: pull app records into editable GeoPackage layers, download TairuDB files as raster layers, push vector layers back as records with a diff preview, and generate and upload offline .tairudb rasters for a selected area. The classic Processing algorithm (Tairu > TairuDB) and the GeoPDF converter remain available for local exports. Cloud sync requires an Online or Real-time Tairu Maps plan.
about[pt_br]=O TairuDB adiciona um painel Tairu Maps ao QGIS para fluxos de mapeamento em campo. Entre com sua conta do Tairu Maps usando e-mail, Google ou Apple, veja seus mapas e troque dados nos dois sentidos: baixe registros do app como camadas GeoPackage editáveis, baixe arquivos TairuDB como camadas raster, envie camadas vetoriais de volta como registros com prévia das alterações e gere e envie rasters offline .tairudb para uma área selecionada. O algoritmo de Processamento clássico (Tairu > TairuDB) e o conversor GeoPDF continuam disponíveis para exportações locais. A sincronização em nuvem exige plano Online ou Tempo Real do Tairu Maps.

tracker=https://github.com/DanielHSMartin/tairu_db/issues
repository=https://github.com/DanielHSMartin/tairu_db

hasProcessingProvider=yes

changelog=
  2.0.13 - Geometria complexa (poligonos com ilhas e multipartes) vinda do app agora e lida no pull e renderizada corretamente no QGIS, e uma edicao de atributo nao apaga mais essa geometria na nuvem ao enviar. Cores e preenchimento por registro passam a seguir o estilo do app (styleJson). Geracao de .tairudb nao trava mais a janela do QGIS: os tiles do mapa base online (Google e outros) sao pre-baixados com barra de progresso, o render usa um loop de eventos real, e o download dos dados de elevacao para curvas de nivel mostra progresso e pode ser cancelado; o arquivo e gravado de forma atomica (sem arquivo corrompido) e as barras de progresso crescem junto com cada download. O wizard mantem a selecao de camadas vetoriais ao voltar e avancar entre as etapas, e os logs de geracao ficaram mais limpos. Cache e custo do Firestore: correcoes que evitam reler a colecao inteira de registros a cada abertura em mapas legados e impedem que uma falha de escrita no cache apague registros locais no modo offline. Outras correcoes: vazamento de socket no login pelo navegador, indice de regiao/tiles com feicao de area vazia, limpeza de arquivos temporarios das curvas e diversas melhorias internas de estabilidade.
  2.0.12 - Correcao: o wizard de geracao de .tairudb agora tambem ignora camadas de registros do Tairu na exportacao vetorial (antes apenas o algoritmo de Processamento fazia isso), evitando geometrias duplicadas no mapa e exposicao de dados dos registros. O WKB OGC passa a ser gravado apenas para poligonos com ilhas ou multipartes (geometrias simples nao carregam mais um blob redundante), reduzindo o tamanho do arquivo.
  2.0.11 - Simbologia estruturada (styleJson): camadas vetoriais enviadas e exportadas para .tairudb agora preservam o preenchimento de poligonos, o padrao de traco (tracejado/pontilhado) e a configuracao de rotulos (campo, cor e visibilidade por zoom) do QGIS, resolvidos no app pelo mesmo codec de estilo dos registros. Curvas de nivel mantem o estilo proprio do app. Poligonos com ilhas (aneis internos) e geometrias multipartes agora preservam sua estrutura via WKB OGC tanto na exportacao .tairudb quanto no envio de camadas como registros, permitindo que o app renderize os furos e todas as partes corretamente.
  2.0.10 - Curvas de nivel integradas ao wizard de geracao de arquivo .tairudb: nova etapa de configuracao permite gerar curvas automaticamente a partir de dados de elevacao INPE TOPODATA (Brasil) ou Copernicus GLO-30 (Mundial), com intervalo, suavizacao e cor configuráveis. As curvas sao geradas na etapa de execucao e incluidas no arquivo .tairudb.
  2.0.9 - GRG grid: replaced separate UTM/GMS grid type options with a unified "Coordenada Geográfica" type whose labels are stored as raw decimal values and formatted at runtime by the Tairu Maps app according to the map coordinate format (DMS, UTM, decimal, etc.). Spacing is now a single meters picker always visible, independent of grid type.
  2.0.8 - Local Firestore cache: maps and records are stored in a local SQLite cache, enabling offline access and graceful fallback when the network is unavailable. Pull sync uses incremental server timestamps for more reliable delta updates; push now triggers an automatic pull refresh. GRG grid generation added to the .tairudb wizard (requires Tairu Maps app 1.0.38 or later). Hash-based change detection skips unchanged records during delta pulls.
  2.0.7 - Raster wizard: added "Use visible map area" option to select the current map canvas extent as the generation area. Fix: canceling .tairudb generation no longer crashes with "wrapped C/C++ object has been deleted" (finished signal is now disconnected before jobs are canceled).
  2.0.6 - QGIS copy/paste on pulled record layers now treats duplicated recordId features as new records, so edited copies are created separately instead of overwriting the original record during push.
  2.0.5 - New record types and subtypes (occurrence, trail, point of interest, drawing, and related subtypes). Contour lines are now classified as drawing/line: when pushing layers, the default type/subtype becomes Drawing/Line for layers with an ELEV field; in .tairudb export, the contourLine type is no longer written and these layers are saved as regular lines.
  2.0.4 - Vector export to .tairudb: color, transparency, and width are read from per-feature symbology (graduated, categorized, and rule-based renderers) instead of falling back to the default blue. Contour lines follow the same logic as record conversion: index contours are thicker and more opaque, intermediate contours are thinner and translucent.
  2.0.3 - .tairudb generation: Tairu record layers (sync GeoPackages) are automatically skipped during vector export, with a warning. This avoids duplicated "ghost" geometries on the map when a record layer is included in a .tairudb file.
  2.0.2 - Contour lines: fixed import color handling (resolves the "_PROP_FILL_COLOR_ is not defined" error on layers with graduated/rule-based symbology); elevation-based titles ("Curve 140m"); automatic styling distinguishes index contours (thicker and more opaque - width 3, opacity 0.8) from regular contours (thinner and translucent - width 2, opacity 0.5), with automatic vertical-interval detection. Fix: pushing a record that had been deleted in the app now restores it instead of silently updating a hidden record.
  2.0.1 - Security hardening: HTTPS enforced on all outbound requests; SQL table names validated against strict regex; static analysis suppressions documented
  2.0 - Tairu Maps: dock panel with Firebase login (e-mail, Google, Apple); pull records as GeoPackage layers and tairudb files as raster layers (MBTiles); push vector layers as records with change preview; wizard to generate and upload .tairudb rasters directly to a map
  1.2.1 - Support for QGIS 4
  1.2 - Multi-region support (one polygon feature per region); vector layer export with JSON attributes; automatic tile retry on failure; WebP support; dry run mode for estimating tile count, file size and processing time
  1.1 - GeoPDF converter added; rendering performance improvements
  1.0 - Initial release: raster tile generation for Tairu Maps

tags=tairu maps, offline maps, tiles, tairudb, sqlite, raster, vector, mobile, export
tags[pt_br]=tairu maps, mapas offline, sincronização qgis, tairudb, sqlite, raster, vetor, mapeamento de campo, exportação

homepage=https://github.com/DanielHSMartin/tairu_db
category=Database
icon=icon.png

experimental=False
deprecated=False
server=False
