MapUnpack
πŸ“– Format Encyclopedia & Technical Analysis

What is a .KMB File?

An engineering deep-dive into the proprietary binary container format that powered Maps.Me for over a decade.

Drop your .kmb file(s) here

or click to browse from your device

Supports .kmb (Maps.Me & Organic Maps), .kmz, and .kml backups

πŸ”’ Private: Processing happens 100% on your device using WebAssembly/JS.

Anatomy of a .KMB File: Binary Serialization Explained

A .kmb (Keyhole Maps Binary) file is a proprietary, closed-source file format developed by MapsWithMe (later Maps.Me) to store geographic waypoints, user descriptions, custom category folders, and GPS track polylines.

Unlike open formats such as KML (which is human-readable XML) or GPX (which is GPS XML), a .kmb file is a densely packed binary stream. If you open a .kmb file in a standard text editor like Notepad or TextEdit, you will see indecipherable raw binary characters.

The Internal Byte Geometry of a .KMB Container

// Maps.Me Binary Serialization Layout

[0x00] Version Magic Byte (0x01, 0x02, or 0x03)

[0x01] Varint: Total Categories Count (N)

     β””── Repeat N times: [Varint Length] + [UTF-8 String Category Name]

[Offset] Varint: Total Placemarks Count (M)

     β””── Repeat M times:

          β”œβ”€β”€ [4 Bytes] Uint32: Mercator X Coordinate

          β”œβ”€β”€ [4 Bytes] Uint32: Mercator Y Coordinate

          β”œβ”€β”€ [Varint Length] + [UTF-8 String Name]

          β”œβ”€β”€ [Varint Length] + [UTF-8 String Description]

          β”œβ”€β”€ [1 Byte] Uint8: Color Scheme Index (0-7)

          β””── [Varint] Category Index Association

[Offset] Varint: Total GPS Tracks Count (T)

     β””── Repeat T times: [Track Name] + [Points Array: X, Y, Ele, Time]

Why Coordinates Are Encoded as 32-Bit Integers

To conserve precious mobile device storage and avoid floating-point rounding errors across different CPU architectures (ARM vs x86), Maps.Me does not store coordinates as standard double-precision decimals (e.g., 37.774929, -122.419416).

Instead, the core C++ engine (omim) maps the entire surface of the earth onto a continuous Mercator grid scaled to the integer range of an unsigned 32-bit integer: 0 to 4,294,967,295 (2^32 - 1). To restore standard Latitude and Longitude, MapUnpack applies the inverse Spherical Mercator transformation:

Longitude = (X / 4294967296.0) * 360.0 - 180.0
Latitude = (atan(sinh((Y / 4294967296.0) * 2Ο€ - Ο€))) * (180.0 / Ο€)

Where Are .KMB Files Stored on Android and iOS?

Because .kmb files are internal database dumps, neither Android nor iOS displays them in your standard gallery. Follow these extraction paths to retrieve them:

πŸ€– Android File Extraction Paths:

In your device's internal storage, navigate to the respective application data folder:

  • Maps.Me: /Android/data/com.mapswithme.maps.pro/files/
  • Organic Maps: /Android/data/app.organicmaps/files/

Android 11+ Scoped Storage: Due to security restrictions on modern Android versions, the /data/ folder is hidden from regular file managers. You can easily access it by connecting your device to a PC via USB cable (MTP transfer mode) or by launching the native Android system Files app.

🍎 iOS (iPhone & iPad) Extraction:

Open the Files app > tap On My iPhone > open the Maps.me or Organic Maps directory > open the Bookmarks folder. You can also export directly from the mobile app via the system Share Sheet.

⚠️

Google My Maps 2000 Points Limit: Prevent File Import Failures

If you try to migrate a large collection of bookmarks from Maps.Me to Google Maps, you will encounter the strict Google My Maps 2000 points limit per layer. When a KML file exceeds 2,000 pins, Google rejects the upload.

MapUnpack Solution: Our online kmb to kml converter features an intelligent auto-splitter that automatically breaks large datasets into structured layers (< 1,900 points per layer, like Part 1 and Part 2). You can also export to kmb to gpx, kmb to geojson, or kmb to csv.

Why CloudConvert and Zamzar Cannot Convert .KMB Files

Commercial converter hubs operate generic FFmpeg, LibreOffice, or GDAL backend daemons. Because .kmb is an application-specific binary serializer without an official MIME type or public specification, these enterprise engines reject the file. MapUnpack was custom-built from the open-source cartographic engine to reverse-engineer these specific byte streams directly in your browser. Read our full Migration Guide to move your points to Google Maps.

Related Conversion Tools & Guides:

⚑ Ecosystem Compatibility

Platform & GPS Device Compatibility Matrix

MapUnpack exports clean, standard geospatial files optimized for every major navigation app and GPS hardware unit:

Platform / Device Recommended Format MapUnpack Optimization Compatibility
πŸ—ΊοΈ
Google My Maps
KML
Auto-split into layers (< 2,000 pts) prevents Google import crashes 100% Compatible
🌍
Google Earth (Web & Pro)
KML
Maps.Me 8-color hex styles and structured CDATA folders Native Support
⌚
Garmin (BaseCamp, Fenix, Edge)
GPX 1.1
Valid Topografix GPX 1.1 schema with elevation & XML escaping 100% Verified
πŸ“±
OsmAnd & Organic Maps
GPX / KML
Direct zero-loss import of categories, descriptions, and tracks Native Format
🌲
Komoot
GPX
Continuous <trkseg> segments ready for outdoor tour planning Fully Compatible
πŸ§—
Wikiloc
GPX / KML
Clean XML tags without binary control character corruptions Fully Compatible
🧭
Locus Map
GPX / KML / KMZ
Support for KMZ archives and multi-folder KML hierarchies 100% Compatible
πŸ“Š
QGIS / ArcGIS / Excel
GeoJSON / CSV
RFC 7946 GeoJSON and RFC 4180 CSV with separate lat/lon columns Enterprise Ready

Frequently Asked Questions

Everything you need to know about .kmb, Google Maps limits, and privacy.

Where are .kmb bookmark files stored on Android? β–Ό

On Android devices, Maps.Me stores bookmarks at /Android/data/com.mapswithme.maps.pro/files/ and Organic Maps at /Android/data/app.organicmaps/files/. On Android 11+, access these folders by connecting your phone to a PC via USB or using the system Files app.

Why does Google My Maps reject my converted KML file with an error (2,000-point limit)? β–Ό

Google My Maps enforces a strict ceiling of 2,000 features (points and routes) per layer. Files exceeding this limit trigger an import error. MapUnpack automatically splits large bookmark files into numbered layers (Part 1, Part 2) with under 1,900 points each.

Does MapUnpack preserve custom pin colors and categories? β–Ό

Yes. Maps.Me uses an internal 8-color preset palette (Red, Blue, Purple, Green, Yellow, Orange, Gray, and Pink). MapUnpack maps these IDs to standard hex color values and embeds them into KML styles and GeoJSON properties so your color categories remain intact.

Can I convert .kmb files directly on my iPhone or iPad? β–Ό

Yes. Because MapUnpack operates entirely in web browser memory without requiring desktop software, you can open mapunpack.com in mobile Safari or Chrome, select your .kmb file from the iOS Files app (On My iPhone > MAPS.ME > Bookmarks), and download standard KML or GPX directly.

Is my location data uploaded to any third-party server (100% offline privacy)? β–Ό

No. Unlike other converters that upload your files to remote servers, MapUnpack uses client-side JavaScript and WebAssembly. All parsing and conversion occur 100% inside your computer's local memory. No coordinates, filenames, or IP addresses are ever transmitted.

Does MapUnpack support Organic Maps bookmark files? β–Ό

Yes. Organic Maps is the open-source continuation of Maps.Me and uses the exact same .kmb binary format and OMIM data container. MapUnpack fully decodes Organic Maps .kmb bookmarks, tracks, and categories.