MapOSMatic - A web interface for creating printable OpenStreetMap maps
July 26, 2026 ยท View on GitHub
MapOSMatic is a web application to generate maps of cities or towns, including index of streets, from OpenStreetMap data.
It is made of two components:
-
MapOSMatic (this repository): the web front-end. An application written using the Django framework allows to submit and visualize map rendering jobs. The rendering is done in the background by a daemon process.
-
OCitysMap: the back-end that generates the map. It is available as a Python module, used both by the maposmatic daemon (above) and by a sample command line application.
It is licensed under under GNU AGPLv3 (GNU Affero General Public License 3.0).
Translation
You can help translating the user interface into other languages here:
https://translate.get-map.org/projects/maposmatic/maposmatic/
Installation
Please refer to the INSTALL file in this repository.
Running tests
The automated test suite runs against a dedicated, self-contained test
settings module (www/settings_test.py) that uses throwaway in-memory
SQLite databases, so it needs neither PostgreSQL nor any external service:
./manage.py test www.maposmatic --settings=www.settings_test
Like the normal settings, the test settings still expect a
www/settings_local.py to exist, but none of its values matter for the
tests. In a fresh checkout (or CI) create one from the template first:
cp www/settings_local.py.dist www/settings_local.py
Tests live in www/maposmatic/tests/.
Pre-commit hook
The test suite can be run automatically before every commit via the
pre-commit framework (configured in
.pre-commit-config.yaml). Enable it once per clone, from within the
activated virtualenv:
pip install -r requirements-dev.txt
pre-commit install
Afterwards git commit runs the test suite first and aborts the commit if
any test fails. Bypass a single commit with git commit --no-verify.
End user and API documentation
End user documentation for the web frontends useage, and API documentation
for developers who want to submit their own rendering job into the rendering
daemons queue, can be found in the documentation subdirectory.