# Auditor MVT Mapbox Vector Tile PMTiles proyección Google MVT y codificación tilelive

Audita tiles vectoriales .mvt/.pbf y archivos PMTiles v3 según la Mapbox Vector Tile Specification 2.x: decodifica las tablas protobuf Layer/Feature/Value, valida el flujo de comandos MoveTo/LineTo/ClosePath, el sentido de los anillos y los índices de tags, comprueba los límites XYZ del esquema Google Web Mercator, decodifica los directorios PMTiles v3 y marca presupuestos de tamaño de tile frente a número de features.

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

- **Categoría:** Geography

- **Palabras clave:** mapbox vector tile, auditor mvt, inspector pmtiles, especificación de tiles vectoriales, límites web mercator, tileid hilbert, presupuesto tilelive, decodificación protobuf

## Descripción general

Auditoría de formato en TypeScript puro: un lector protobuf hecho a mano decodifica Tile.layers → Layer(version/name/features/keys/values/extent) → Feature(tags/type/geometry) → Value (string/float/double/int/uint/sint-zigzag/bool). El intérprete de geometría sigue la §4.3 exacta — CommandInteger = id | count<<3, ParameterIntegers zigzag, dX/dY ≠ (0,0), ClosePath solo en polígonos con count 1, POINT = un único MoveTo, LINESTRING = repeticiones MoveTo+LineTo — y clasifica cada anillo con la fórmula del agrimensor: los anillos exteriores deben tener área positiva (horarios en y-down) y los interiores negativa. Los presupuestos siguen la práctica tilelive/tippecanoe (≈500 KB y ≈10 000 features como umbrales). PMTiles v3 se decodifica según la especificación: cabecera de 127 bytes, compresión interna gzip/brotli, directorios varint con TileIDs delta sobre la curva de Hilbert, entradas run-length y punteros hoja con run-length 0, comprobaciones de clúster y conformidad, y extracción de tile por z/x/y. El panel Web Mercator valida el XYZ del esquema Google (0 ≤ x,y < 2^z) y calcula el bbox geográfico y la resolución.

## Entradas

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

## Cuándo usarlo

- Cuando un mapa vectorial presenta fallos de renderizado en polígonos por orientación incorrecta de anillos o comandos geométricos no conformes.
- Al inspeccionar la estructura interna, directorios de Hilbert y compresión de archivos PMTiles v3 antes de desplegarlos en producción.
- Para verificar si los tiles generados con herramientas como tippecanoe o tilelive superan los límites recomendados de peso (500 KB) o volumen de features (10 000).

## Cómo funciona

- El lector protobuf analiza el archivo subido (.mvt, .pbf o .pmtiles) y decodifica las capas, features, geometrías y tablas de claves/valores.
- Si se proporciona un archivo PMTiles v3, lee la cabecera de 127 bytes, descomprime los directorios varint y localiza el tile correspondiente mediante coordenadas z/x/y sobre la curva de Hilbert.
- El validador de geometría procesa los comandos MoveTo, LineTo y ClosePath, aplicando la fórmula del agrimensor para clasificar anillos exteriores e interiores.
- Calcula el bounding box geográfico en proyección Google Web Mercator y genera un informe HTML detallando conformidad, recuento de geometrías y alertas de presupuesto.

## Casos de uso

- Depuración de capas vectoriales con errores de recorte, tags duplicados o topología inválida producidos por pipelines ETL geoespaciales.
- Auditoría técnica de archivos PMTiles v3 para comprobar índices raíz y hojas, metadatos vector_layers y estado de clúster.
- Control de calidad en pipelines de generación de teselas para evitar cuellos de botella en visores cartográficos WebGL.

## Preguntas frecuentes

### ¿Qué especificación MVT se utiliza para validar las geometrías?

Se utiliza la especificación Mapbox Vector Tile 2.x, verificando comandos zigzag, deltas dX/dY, anillos poligonales y codificación de valores.

### ¿Cómo determina la herramienta si un anillo poligonal es exterior o interior?

Aplica la fórmula del agrimensor en el sistema y-down: los anillos exteriores deben tener área positiva (sentido horario) y los interiores área negativa.

### ¿Es obligatorio indicar las coordenadas z, x e y al subir un archivo .mvt?

No es obligatorio para un archivo .mvt individual, pero indicarlas permite validar los límites Web Mercator y calcular el bbox geográfico exacto.

### ¿Qué versiones y compresiones de PMTiles son compatibles?

Es compatible con PMTiles versión 3 con compresión interna gzip o brotli y directorios ordenados por TileID de Hilbert.

### ¿Cuáles son los umbrales de presupuesto para alertar sobre tiles pesados?

Sigue las prácticas estándar de tilelive y tippecanoe, marcando advertencias en tiles que superen aproximadamente 500 KB o 10 000 features.

## Herramientas relacionadas

- [Desofuscador JavaScript](https://elysiatools.com/es/tools/javascript-deobfuscator): Desofusca y analiza código JavaScript ofuscado para mejorar la legibilidad y comprensión
- [Tutor de ajedrez: FEN / PGN y rating Elo](https://elysiatools.com/es/tools/chess-fen-pgn-elo-rating-tutor): Analiza y valida FEN, partidas PGN/SAN; calcula el nuevo rating Elo a partir de victorias/tablas/derrotas y ratings rivales; incluye bandas Lichess/Chess.com
- [Transformador CSV](https://elysiatools.com/es/tools/csv-transformer): Transformar y procesar datos CSV con operaciones de columnas, cálculos y conversiones de tipo de datos. Ejemplos de operaciones: • Renombrar columna: \[{"type": "rename", "column": "nombre_antiguo", "new_name": "nombre_nuevo"}\] • Agregar columna calculada: \[{"type": "add_column", "new_column": "total", "formula": "precio * cantidad"}\] • Eliminar columna: \[{"type": "remove_column", "remove_column": "columna_a_eliminar"}\] • Convertir tipo de dato: \[{"type": "convert_type", "convert_column": "edad", "target_type": "number"}\] • Calcular valores: \[{"type": "calculate", "target_column": "total", "expression": "precio * impuesto + envio"}\] • Filtrar filas: \[{"type": "filter_values", "filter_column": "estado", "operator": "equals", "value": "activo"}\]
- [Simulador de Dinámica Depredador-Presa Lotka–Volterra](https://elysiatools.com/es/tools/lotka-volterra-predator-prey): Resuelve y visualiza el sistema clásico depredador-presa de Lotka–Volterra: dN/dt = rN − aNP, dP/dt = bNP − mP. Integración RK4 (6000 pasos, con seguimiento de la deriva de la cantidad conservada V = bN − m·ln N + aP − r·ln P), curvas de oscilación en contrafase de presas y depredadores y plano de fase con órbitas cerradas, el equilibrio de coexistencia N*=m/b, P*=r/a y el periodo linealizado T ≈ 2π/√(rm). Detecta el número de ciclos, el periodo medido y el rango de oscilación, y explica la inestabilidad estructural de las oscilaciones neutras: la amplitud queda fijada por las condiciones iniciales, mientras que los sistemas reales se amortiguan por dependencia de la densidad o se autoexcitan por la paradoja del enriquecimiento.
- [Evaluador de poda por bloom filter, mapa de zonas, diccionario y estadísticas de columnas Parquet](https://elysiatools.com/es/tools/parquet-bloom-filter-zonemap-dictionary-and-column-statistics-pruner-evaluator): Decodifica el footer thrift de Parquet y cuantifica la poda por predicate pushdown: min/max del mapa de zonas, filtros bloom split-block (XXH64), ratios de diccionario y codificaciones, con estimaciones de ahorro por grupo de filas para cláusulas WHERE de ejemplo.
- [Extractsor de Texto PDF](https://elysiatools.com/es/tools/pdf-text-extractor): Extrae contenido de texto de documentos PDF con soporte para selección de páginas, opciones de formato y procesamiento multiidioma
- [Extractor de Texto Word](https://elysiatools.com/es/tools/word-text-extractor): Extrae contenido de texto de documentos Word con soporte para opciones de formato, selección de párrafos y procesamiento multiidioma
- [Minificador y analizador SVG](https://elysiatools.com/es/tools/svg-minifier-analyzer): Analiza el marcado SVG, elimina elementos redundantes, reduce peso, compara antes y despues y exporta archivos limpios

## Ejemplos

- [Ejemplos de MVT / PMTiles](https://elysiatools.com/es/samples/mvt-pmtiles-samples): Fixtures de teselas vectoriales para el auditor de Mapbox Vector Tile y PMTiles
- [Muestras de Convertidor Hex/Unicode](https://elysiatools.com/es/samples/text-hex-unicode-formats): Muestras de prueba para conversión de secuencias de escape hex y unicode
- [Ejemplos de Operaciones de Archivo Web Go](https://elysiatools.com/es/samples/web-file-operations-go): Ejemplos de operaciones de archivo Web Go incluyendo lectura/escritura de archivos de texto, copiar/mover, recorrido de directorio y validación de archivos
- [Ejemplos de Operaciones de Archivo Web Python](https://elysiatools.com/es/samples/web-file-operations-python): Ejemplos de operaciones de archivo Web Python incluyendo lectura/escritura de archivos de texto, copiar/mover, recorrido de directorio y validación de archivos
