Анатомия файла .KMB: Внутреннее устройство
Файл .kmb (Keyhole Maps Binary) — это проприетарный бинарный формат, разработанный создателями MapsWithMe (Maps.Me) для ультра-компактного хранения географических меток, списков избранного и GPS-треков.
В отличие от открытого формата KML (текстовый XML) или GPX (туристический GPS XML), файл .kmb представляет собой сжатый поток байтов. Если открыть его в обычном Блокноте, вы увидите нечитаемый набор символов. Смотрите наше полное руководство по миграции для переноса данных в Google Карты.
Структура байтов в файле .KMB
// Бинарная структура Maps.Me
[0x00] Байт версии (0x01, 0x02 или 0x03)
[0x01] Varint: Количество категорий (N)
└── Повтор N раз: [Длина Varint] + [Имя категории UTF-8]
[Offset] Varint: Количество меток (M)
└── Повтор M раз:
├── [4 байта] Uint32: Координата X (Меркатор)
├── [4 байта] Uint32: Координата Y (Меркатор)
├── [Varint] + [Имя метки UTF-8]
├── [Varint] + [Описание метки UTF-8]
├── [1 байт] Uint8: Индекс цвета метки (0-7)
└── [Varint] Привязка к категории
[Offset] Varint: Количество GPS-треков (T)
└── Повтор T раз: [Имя трека] + [Массив точек X, Y]
Почему координаты кодируются 32-битными целыми числами?
Чтобы экономить оперативную память мобильных телефонов и не тратить место на числа с плавающей запятой (double), движок Maps.Me проецирует земной шар на непрерывную сетку Меркатора в диапазоне целых чисел от 0 до 4 294 967 295 (2^32 - 1).
Для восстановления стандартных координат широты и долготы MapUnpack выполняет обратное сферическое преобразование Меркатора прямо в вашем браузере.
Где лежат метки Maps.Me на андроид и iPhone?
Файлы .kmb хранятся во внутренних изолированных директориях приложений Maps.Me и Organic Maps:
В памяти устройства перейдите в папки:
- Maps.Me: /Android/data/com.mapswithme.maps.pro/files/
- Organic Maps: /Android/data/app.organicmaps/files/
Android 11+ Scoped Storage: Из-за ограничений безопасности доступ к /Android/data/ закрыт стандартным проводникам. Подключите смартфон к ПК по USB в режиме передачи файлов или откройте системное приложение "Файлы" (AOSP Files).
Приложение Файлы (Files) > На моем iPhone > папка MAPS.ME или Organic Maps > Bookmarks. Также файл можно отправить прямо из меню приложения через "Поделиться".
Лимит 2000 точек в Google Мои Карты: Причина сбоев импорта
При попытке перенести большой архив меток пользователи сталкиваются с ошибкой: Google Мои Карты не поддерживают более 2000 точек на один слой.