kmap
Not to be confused with KMaps, an iOS navigation app.
| kmap | ||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Author: | kmaptool | |||||||||||||||||||||||||||||||||||
| License: | MIT License (free of charge) | |||||||||||||||||||||||||||||||||||
| Platforms: | Linux, macOS, and Windows | |||||||||||||||||||||||||||||||||||
| Status: | Active | |||||||||||||||||||||||||||||||||||
| Version: | 1.9.1 (2026-10-31) | |||||||||||||||||||||||||||||||||||
| Languages: | English and Russian
| |||||||||||||||||||||||||||||||||||
| Website: | https://github.com/kmaptool/kmap | |||||||||||||||||||||||||||||||||||
| Source code: | https://github.com/kmaptool/kmap | |||||||||||||||||||||||||||||||||||
| Programming language: | Swift | |||||||||||||||||||||||||||||||||||
|
Builds routable maps for Garmin devices from OpenStreetMap on your own computer, with contour lines and hill shading | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
kmap is a free, open source program that builds maps for Garmin handhelds, watches and cycling computers from OpenStreetMap data. You pick one or more regions, press Build, and get a single .img file to copy into the Garmin folder of the device or its memory card. Everything runs locally: no account, no server, no upload of your data.
Under the hood kmap compiles the map with Mkgmap and does the rest itself: downloading extracts, elevation data and the tools, repairing and splitting the data into tiles (with its own splitter), building contours and choosing options. It has a full-screen text interface (TUI) and a command line with the same capabilities, so builds can also be scripted.
Features
- Regions from the Geofabrik tree, from a continent down to a single state; several regions are merged into one seamless map. Maps across the 180° meridian are supported.
- Routing and address search on the device.
- Contour lines with a chosen interval and hill shading (DEM) for the elevation profile. Elevation sources are tried in order and fill each other's gaps: Copernicus GLO-30/GLO-90 by default, also FABDEM, GEDTM30, Viewfinder Panoramas, SRTM and ALOS.
- Styles. Four open styles ship with the program: the openstreetmap-carto look, OpenTopoMap, CyclOSM and OSM Liberty Topo. Day and night modes.
- Style import. kmap can take the TYP file out of a Garmin map you already have and, by matching that map's geometry against OSM data, work out which object each type stands for, so new maps are drawn the same way. This only makes sense for maps whose licence allows reusing their design.
- Style editor in the interface, down to single icon pixels.
- Profiles per device, for example a detailed map for a handheld and a lighter one for a watch.
- Road repair: small gaps between roads and trails (up to 5 m) are closed so routing does not stop at them.
- Labels in the local language, English or Russian.
- Output as a single file, one file per region or several parts of about equal size; optionally a
.gmapfolder for BaseCamp. - Downloads are cached and resumed after a broken connection; a rebuild with fresh data starts within seconds.
Installation and usage
Builds for Windows (installer), macOS (universal, Intel and Apple Silicon) and Linux (.deb and .tar.xz, x86-64 and ARM, WSL included) are on the releases page. On first launch kmap offers to download the tools it needs (Java, mkgmap and, if needed, pyhgtmap); kmap doctor checks the setup.
Then run kmap, select a region and press Build; or from the command line, for example kmap build austria+switzerland. The map is written to ~/kmap. The README covers styles, profiles and all options.
Help
Questions and bug reports go to the issue tracker. kmap doctor answers most setup problems.
Contribute
The source code is on GitHub under the MIT licence; pull requests and issue reports are welcome.
Privacy
kmap has no accounts and no telemetry. It only downloads: OSM extracts from Geofabrik, elevation tiles from the chosen sources, and the tools it needs. Nothing about you or your maps is sent anywhere.
Licence of the maps
Maps built with kmap contain OpenStreetMap data and fall under the Open Database License; kmap writes the required attribution into the copyright lines of every map. Some elevation sources have their own terms, for example FABDEM allows non-commercial use only.