# Auditor MVT Mapbox Vector Tile PMTiles projeção Google MVT e codificação tilelive

Audita tiles vetoriais .mvt/.pbf e arquivos PMTiles v3 segundo a Mapbox Vector Tile Specification 2.x: decodifica as tabelas protobuf Layer/Feature/Value, valida o fluxo de comandos MoveTo/LineTo/ClosePath, o sentido dos anéis e os índices de tags, verifica os limites XYZ do esquema Google Web Mercator, decodifica os diretórios PMTiles v3 e marca orçamentos de tamanho de tile vs número de features.

> Página canônica: https://elysiatools.com/pt/tools/mvt-mapbox-vector-tile-pmtiles-google-mvt-projection-and-tilelive-encoding-auditor

- **Categoria:** Geography

- **Palavras-chave:** mapbox vector tile, auditor mvt, inspector pmtiles, especificação de tiles vetoriais, limites web mercator, hilbert tileid, orçamento tilelive, decodificação protobuf

## Visão geral

Auditoria de formato em TypeScript puro: um leitor protobuf escrito à mão decodifica Tile.layers → Layer(version/name/features/keys/values/extent) → Feature(tags/type/geometry) → Value (string/float/double/int/uint/sint-zigzag/bool). O intérprete de geometria segue a §4.3 ao pé da letra — CommandInteger = id | count<<3, ParameterIntegers zigzag, dX/dY ≠ (0,0), ClosePath só em polígonos com count 1, POINT = um único MoveTo, LINESTRING = repetições MoveTo+LineTo — e classifica cada anel pela fórmula do agrimensor: anéis exteriores devem ter área positiva (sentido horário em y-down), interiores negativa. Os orçamentos seguem a prática tilelive/tippecanoe (≈500 KB e ≈10 000 features como limiares). O PMTiles v3 é decodificado segundo a especificação: cabeçalho de 127 bytes, compressão interna gzip/brotli, diretórios varint com TileIDs delta na curva de Hilbert, entradas run-length e ponteiros folha com run-length 0, checagens de cluster e conformidade e extração de tile por z/x/y. O painel Web Mercator valida o XYZ do esquema Google (0 ≤ x,y < 2^z) e calcula o bbox geográfico e a resolução.

## Entradas

- **Arquivo de tile** (file): Upload .mvt / .pbf / .pmtiles
- **Zoom do tile (z)** (number): e.g. 10 — enables the Web Mercator bbox and PMTiles lookup
- **Coluna do tile (x)** (number): e.g. 512
- **Linha do tile (y)** (number): e.g. 384

## Quando usar

- Quando precisar validar se tiles .mvt ou .pbf recém-gerados cumprem estritamente a Mapbox Vector Tile Specification 2.x.
- Ao inspecionar o cabeçalho, a estrutura de diretórios e o agrupamento interno de um arquivo PMTiles v3.
- Para identificar violações de orçamento de tamanho de arquivo (acima de 500 KB) ou excesso de features (acima de 10.000) por tile.

## Como funciona

- Decodifica a mensagem Protobuf para extrair camadas, extensões (extent), chaves, valores tipados e atributos associados a cada feature.
- Analisa a sequência de comandos MoveTo, LineTo e ClosePath com parâmetros zigzag e valida o sentido horário/anti-horário dos anéis via fórmula do agrimensor.
- Lê o cabeçalho de 127 bytes do PMTiles v3, decodifica diretórios raiz e folha por TileID Hilbert e descomprime tiles compactados com gzip ou brotli.
- Verifica a conformidade dos índices XYZ no esquema Google Web Mercator e calcula o bounding box geográfico e a resolução correspondente.

## Casos de uso

- Depuração de geometrias corrompidas ou anéis invertidos gerados por pipelines de conversão geoespacial.
- Inspeção de metadados e integridade de diretórios em bases PMTiles antes da publicação em servidores estáticos.
- Auditoria de conformidade de esquemas de coordenadas XYZ no padrão Web Mercator do Google.

## Perguntas frequentes

### Quais formatos de arquivo são suportados?

A ferramenta aceita arquivos binários de tile .mvt e .pbf, arquivos de arquivo único .pmtiles (v3) e arquivos comprimidos com gzip (.gz).

### Como é avaliado o sentido de enrolamento (winding order) dos polígonos?

A área do anel é calculada pela fórmula do agrimensor em coordenadas com eixo Y invertido (y-down); anéis externos devem ter área positiva e anéis internos (ilhas), negativa.

### É obrigatório informar as coordenadas Zoom (z), Coluna (x) e Linha (y)?

Não, mas informar z, x e y permite calcular a resolução e o bounding box Web Mercator exatos, além de localizar tiles específicos dentro de contêineres PMTiles.

### Quais limites de orçamento de tilelive são sinalizados?

O relatório destaca tiles com tamanho superior a aproximadamente 500 KB ou contendo mais de 10.000 features geométricas.

### Como o PMTiles v3 localiza tiles internos?

O formato mapeia coordenadas z/x/y para identificadores delta compactados ao longo da curva de Hilbert em diretórios raiz e folha.

## Ferramentas relacionadas

- [Desofuscador JavaScript](https://elysiatools.com/pt/tools/javascript-deobfuscator): Desofusca e analisa código JavaScript ofuscado para melhorar legibilidade e compreensão
- [Tutor de xadrez: FEN / PGN e rating Elo](https://elysiatools.com/pt/tools/chess-fen-pgn-elo-rating-tutor): Analisa e valida FEN, partidas PGN/SAN; calcula o novo rating Elo a partir de vitórias/empates/derrotas e ratings dos adversários; faixas Lichess/Chess.com
- [Transformador CSV](https://elysiatools.com/pt/tools/csv-transformer): Transformar e processar dados CSV com operações de colunas, cálculos e conversões de tipo de dados. Exemplos de operações: • Renomear coluna: \[{"type": "rename", "column": "nome_antigo", "new_name": "novo_nome"}\] • Adicionar coluna calculada: \[{"type": "add_column", "new_column": "total", "formula": "preco * quantidade"}\] • Remover coluna: \[{"type": "remove_column", "remove_column": "coluna_a_remover"}\] • Converter tipo de dado: \[{"type": "convert_type", "convert_column": "idade", "target_type": "number"}\] • Calcular valores: \[{"type": "calculate", "target_column": "total", "expression": "preco * imposto + entrega"}\] • Filtrar linhas: \[{"type": "filter_values", "filter_column": "status", "operator": "equals", "value": "ativo"}\]
- [Simulador de Dinâmica Predador-Presa Lotka–Volterra](https://elysiatools.com/pt/tools/lotka-volterra-predator-prey): Resolve e visualiza o sistema clássico predador-presa de Lotka–Volterra: dN/dt = rN − aNP, dP/dt = bNP − mP. Integração RK4 (6000 passos, com monitoramento do desvio da quantidade conservada V = bN − m·ln N + aP − r·ln P), curvas de oscilação em contrafase de presas e predadores e plano de fase com órbitas fechadas, equilíbrio de coexistência N*=m/b, P*=r/a e período linearizado T ≈ 2π/√(rm). Detecta o número de ciclos, o período medido e a amplitude, e explica a instabilidade estrutural das oscilações neutras: a amplitude é fixada pelas condições iniciais, enquanto sistemas reais se amortecem por dependência de densidade ou se autoexcitam pelo paradoxo do enriquecimento.
- [Avaliador de poda Parquet por filtros bloom, mapas de zonas, dicionários e estatísticas de colunas](https://elysiatools.com/pt/tools/parquet-bloom-filter-zonemap-dictionary-and-column-statistics-pruner-evaluator): Decodifica o footer thrift do Parquet e quantifica a poda por predicate pushdown: min/max dos mapas de zonas, filtros bloom split-block (XXH64), razões de dicionário e codificações, com estimativas de economia por grupo de linhas para cláusulas WHERE de exemplo.
- [PDF Text Extractor](https://elysiatools.com/pt/tools/pdf-text-extractor): Extract text content from PDF documents with support for page selection, formatting options, and multi-language processing
- [Word Text Extractor](https://elysiatools.com/pt/tools/word-text-extractor): Extract text content from Word documents with support for formatting options, paragraph selection, and multi-language processing
- [Minificador e analisador SVG](https://elysiatools.com/pt/tools/svg-minifier-analyzer): Analisa a marcacao SVG, remove elementos redundantes, reduz tamanho, compara antes e depois e exporta arquivos limpos

## Exemplos

- [Exemplos de MVT / PMTiles](https://elysiatools.com/pt/samples/mvt-pmtiles-samples): Fixtures de tiles vetoriais para o auditor Mapbox Vector Tile e PMTiles
- [Amostras de Conversor Hex/Unicode](https://elysiatools.com/pt/samples/text-hex-unicode-formats): Amostras de teste para conversão de sequências de escape hex e unicode
- [Exemplos de Operações de Arquivo Web Go](https://elysiatools.com/pt/samples/web-file-operations-go): Exemplos de operações de arquivo Web Go incluindo leitura/escrita de arquivo de texto, copiar/mover, travessia de diretório e validação de arquivo
- [Exemplos de Operações de Arquivo Web Python](https://elysiatools.com/pt/samples/web-file-operations-python): Exemplos de operações de arquivo Web Python incluindo leitura/escrita de arquivo de texto, copiar/mover, travessia de diretório e validação de arquivo
