# Аудитор MVT Mapbox Vector Tile, PMTiles, проекции Google MVT и кодирования tilelive

Проверяет векторные тайлы .mvt/.pbf и архивы PMTiles v3 по Mapbox Vector Tile Specification 2.x: декодирует protobuf-таблицы Layer/Feature/Value, валидирует поток команд MoveTo/LineTo/ClosePath, порядок обхода колец и индексы тегов, проверяет XYZ-границы схемы Google Web Mercator, декодирует каталоги PMTiles v3 и отмечает бюджеты размера тайла против числа объектов.

> Каноническая страница: https://elysiatools.com/ru/tools/mvt-mapbox-vector-tile-pmtiles-google-mvt-projection-and-tilelive-encoding-auditor

- **Категория:** Geography

- **Ключевые слова:** mapbox vector tile, аудит mvt, инспектор pmtiles, спецификация векторных тайлов, границы web mercator, hilbert tileid, бюджет tilelive, декодирование protobuf

## Обзор

Аудит формата на чистом TypeScript: самописный protobuf-ридер декодирует Tile.layers → Layer(version/name/features/keys/values/extent) → Feature(tags/type/geometry) → Value (string/float/double/int/uint/sint-zigzag/bool). Интерпретатор геометрии буквально следует §4.3 — CommandInteger = id | count<<3, zigzag-параметры, dX/dY ≠ (0,0), ClosePath только для полигонов с count 1, POINT = один MoveTo, LINESTRING = повторы MoveTo+LineTo — и классифицирует кольца по формуле землемера: внешние кольца должны иметь положительную площадь (визуально по часовой в y-down), внутренние — отрицательную. Бюджеты следуют практике tilelive/tippecanoe (пороги ≈500 КБ и ≈10 000 объектов). PMTiles v3 декодируется по спецификации: 127-байтовый заголовок, внутреннее сжатие gzip/brotli, varint-каталоги с дельта TileID по кривой Гильберта, записи run-length и листовые указатели с run-length 0, проверки кластеризации и конформности, извлечение тайла по z/x/y. Панель Web Mercator валидирует XYZ схемы Google (0 ≤ x,y < 2^z) и считает географический bbox и разрешение.

## Входные данные

- **Файл тайла** (file): Upload .mvt / .pbf / .pmtiles
- **Зум тайла (z)** (number): e.g. 10 — enables the Web Mercator bbox and PMTiles lookup
- **Колонка тайла (x)** (number): e.g. 512
- **Строка тайла (y)** (number): e.g. 384

## Когда использовать

- При валидации геометрии и тегов в сгенерированных файлах .mvt или .pbf перед загрузкой на тайл-сервер.
- При проверке целостности архивов PMTiles v3, их метаданных, каталогов и тайлов по координатам Z/X/Y.
- При контроле лимитов tilelive и tippecanoe по размеру тайлов (до ~500 КБ) и числу объектов (до ~10 000).

## Как это работает

- Загрузите бинарный файл векторного тайла (.mvt, .pbf, .gz) или архив PMTiles v3, при необходимости указав зум (Z) и координаты (X, Y).
- Движок выполняет декодирование Protobuf: разбирает слои, типы геометрий, словарь ключей/значений и распаковывает команды MoveTo, LineTo и ClosePath.
- Инструмент проверяет направление обхода полигональных колец (формула землемера), разрешает ссылки на теги, валидирует каталоги PMTiles и рассчитывает географический BBox Web Mercator.
- Формируется детальный интерактивный отчет с перечнем слоев, атрибутов, статусом соответствия спецификации и предупреждениями о превышении бюджетов.

## Сценарии использования

- Отладка картографических конвейеров на базе Tippecanoe, Martin, Tegola или Mapnik.
- Инспекция и извлечение тайлов из архивов PMTiles v3 для бессерверной картографии.
- Поиск ошибок топологии, сбитых индексов тегов и недопустимых нулевых смещений dX/dY в геометрии.

## Частые вопросы

### Какие форматы файлов поддерживаются инструментом?

Поддерживаются бинарные векторные тайлы .mvt, .pbf, сжатые .gz-файлы, а также контейнеры PMTiles v3.

### Как проверяется правильность полигонов в MVT?

Геометрия проверяется по формуле землемера: внешние кольца должны иметь положительную площадь, а внутренние (дыры) — отрицательную.

### Обязательно ли указывать координаты Z, X, Y?

Для одиночных .mvt это опционально (нужно для расчета BBox Web Mercator), а для архивов PMTiles координаты необходимы для извлечения конкретного тайла.

### Какие пороги бюджетов тайла использует аудитор?

Используются стандартные рекомендации tippecanoe/tilelive: предупреждения выводятся при превышении размера ~500 КБ или свыше ~10 000 объектов на тайл.

### Происходит ли отправка данных на сторонние серверы?

Нет, весь парсинг Protocol Buffers и аудит геометрии выполняются локально в браузере.

## Связанные инструменты

- [Деобфускатор JavaScript](https://elysiatools.com/ru/tools/javascript-deobfuscator): Деобфусцирует и анализирует запутанный код JavaScript для улучшения читаемости и понимания
- [Тренер по шахматам: FEN / PGN и рейтинг Эло](https://elysiatools.com/ru/tools/chess-fen-pgn-elo-rating-tutor): Разбирает и проверяет FEN, записи PGN/SAN; считает новый рейтинг Эло по победам/ничьим/поражениям и рейтингам соперников; таблицы Lichess/Chess.com
- [CSV Трансформер](https://elysiatools.com/ru/tools/csv-transformer): Трансформация и обработка данных CSV с операциями столбцов, вычислениями и преобразованиями типов данных. Примеры операций: • Переименовать столбец: \[{"type": "rename", "column": "старое_имя", "new_name": "новое_имя"}\] • Добавить вычисляемый столбец: \[{"type": "add_column", "new_column": "итого", "formula": "цена * количество"}\] • Удалить столбец: \[{"type": "remove_column", "remove_column": "столбец_для_удаления"}\] • Преобразовать тип данных: \[{"type": "convert_type", "convert_column": "возраст", "target_type": "number"}\] • Вычислить значения: \[{"type": "calculate", "target_column": "итого", "expression": "цена * налог + доставка"}\] • Фильтровать строки: \[{"type": "filter_values", "filter_column": "статус", "operator": "equals", "value": "активный"}\]
- [Симулятор динамики хищник–жертва Лотки–Вольтерры](https://elysiatools.com/ru/tools/lotka-volterra-predator-prey): Решает и визуализирует классическую систему хищник–жертва Лотки–Вольтерры: dN/dt = rN − aNP, dP/dt = bNP − mP. RK4-интегрирование (6000 шагов, с контролем дрейфа сохраняющейся величины V = bN − m·ln N + aP − r·ln P), кривые противофазных колебаний жертв и хищников и фазовая плоскость с замкнутыми орбитами, равновесием сосуществования N*=m/b, P*=r/a и линеаризованным периодом T ≈ 2π/√(rm). Определяет число циклов, измеренный период и размах колебаний, объясняя структурную неустойчивость нейтральных колебаний: амплитуда задаётся начальными условиями, а реальные системы затухают из-за зависимости от плотности или самовозбуждаются (парадокс обогащения).
- [Оценщик обрезки Parquet по bloom-фильтрам, zone-картам, словарям и статистике колонок](https://elysiatools.com/ru/tools/parquet-bloom-filter-zonemap-dictionary-and-column-statistics-pruner-evaluator): Декодирует thrift-footer Parquet и количественно оценивает обрезку predicate pushdown: min/max zone-карт, split-block bloom-фильтры (XXH64), доли словарей и кодировки, с оценками экономии по группам строк для примерных предложений WHERE.
- [Извлекатель Текста PDF](https://elysiatools.com/ru/tools/pdf-text-extractor): Извлекает текстовое содержимое из PDF-документов с поддержкой выбора страниц, опций форматирования и многоязычной обработки
- [Извлекатель Текста Word](https://elysiatools.com/ru/tools/word-text-extractor): Извлекает текстовое содержимое из документов Word с поддержкой опций форматирования, выбора абзацев и многоязычной обработки
- [Минификатор и анализатор SVG](https://elysiatools.com/ru/tools/svg-minifier-analyzer): Анализирует SVG-разметку, удаляет лишние элементы, уменьшает размер, показывает сравнение до/после и экспортирует очищенные файлы

## Примеры

- [Примеры MVT / PMTiles](https://elysiatools.com/ru/samples/mvt-pmtiles-samples): Фикстуры векторных тайлов для аудитора Mapbox Vector Tile и PMTiles
- [Примеры Hex/Unicode Конвертера](https://elysiatools.com/ru/samples/text-hex-unicode-formats): Тестовые примеры для преобразования hex и unicode escape-последовательностей
- [Примеры Файловых Операций Web Go](https://elysiatools.com/ru/samples/web-file-operations-go): Примеры файловых операций Web Go включая чтение/запись текстовых файлов, копирование/перемещение, обход директорий и валидацию файлов
- [Примеры Файловых Операций Web Python](https://elysiatools.com/ru/samples/web-file-operations-python): Примеры файловых операций Web Python включая чтение/запись текстовых файлов, копирование/перемещение, обход директорий и валидацию файлов
