A library and QML component for rendering multi-level OSM indoor maps of for example a (large) train station.


User facing:

  • Floor-level separation of OSM data and inter-floor navigation using stairs, escalators or elevators.
  • Information model for showing details about a selected amenity.
  • Support for identifying railway platforms or airport gates in the map data.
  • Integration with KPublicTransport line meta-data to show line icons for railway platforms.
  • Integration with KPublicTransport rental vehicle data to show availability of rental bikes.
  • Integration with KPublicTransport realtime equipment (elevators/escalators/etc) status information.


  • QPainter and QML integration interface.
  • Declarative styling using MapCSS.
  • Picking support for implementing interaction with map elements.
  • Support for externally provided overlay elements.
  • Based on OSM raw data tiles from maps.kde.org.
  • Pre-loading and caching API for offline support in applications.


There's two test applications included:

  • A fairly minimal widget-based one that can be launched via $buildir/bin/indoormap -c <lat>,<lon> (use e.g. -c 52.52512,13.36966 for a good example).
  • A QML-based one that can be launched via qmlscene src/app/indoormap.qml. This one demos a number of additional features, such as element picking and the KPublicTransport integration.

The latter is also available as nightly build:

  • Flatpak:
    flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
    flatpak remote-add --if-not-exists kdeapps --from https://distribute.kde.org/kdeapps.flatpakrepo
    flatpak install kdeapps org.kde.kosmindoormap
  • KDE nightly F-Droid repository
  • Raw APKs from binary factory

Dynamic MapCSS

By default the compiled-in MapCSS files are used. If you put files with the same name into $PREFIX/share/org.kde.kosmindoormap/assets/css or ~/.local/share/org.kde.kosmindoormap/assets/css those will be preferred. Symlinking the src/map/assets directory to any of those locations is therefore useful for style development. Styles are reevaluated when switching between them, so this allows testing style changes without restarting or recompiling the applications.

This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Wed Sep 27 2023 04:03:16 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.