Why do we call our self-hosted mapping solution

Compact Maps - What Can You Put in 12 MB Binary?

submited by
Style Pass
2021-07-03 16:00:06

Why do we call our self-hosted mapping solution "Compact Maps"? Well, because it is... compact. The complete set of standard WEB map APIs - map tile retrieval, geocoding/reverse geocoding, and routing - is embedded into one single Linux executable. Map data is stored separately, but they are also highly optimized and compressed (more about map data format later). That single executable is also a standalone HTTP server. Its size is about 12MB, and it does not have external dependencies (except a few Linux standard shared libraries, of course).

The same Compact Maps executable runs out of the box on any Linux distribution having kernel version 3.2 or newer. The binary runs unchanged on x64 CPU under Debian, Gentoo, Ubuntu, Mint, Red Hat, CentOS, Fedora, etc. The ARM version of Compact Maps runs on any CPU with an instruction set compatible with ARM Cortex-A7, which, for all practical purposes, nowadays means any ARM processor. Yes, Compact Maps runs on Raspberry Pi 2.

Maps are stored in files, one file per country, in a highly compressed format. These are read-only files that contain all information required for map tile rendering, geocoding, and routing. The size of files is roughly three times smaller than the popular "mbtiles" format, which contains only map tiles data, without geocoding indices or routing data overlays.

Leave a Comment