From OpenStreetMap Wiki
< JOSM‎ | Plugins
Jump to: navigation, search

Available languages — JOSM/Plugins/indoorhelper
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tagalog · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް

Indoorhelper icon.png indoorhelper

a plug-in to create, validate and view indoor maps correctly

Indoorhelper fullscreen.PNG

IndoorHelper is a JOSM plug-in to create, validate and view indoor maps correctly.


Toolbox of the plug-in, with: POWER-button; level-list and namefield; object-list; name and ref textfields; apply-button; preset buttons, with the most used objects

Normal Usage

After the installation the plug-in appears in the sidebar of JOSM. From there it can be activated using the "POWER"-button, which will make the "Level Selection"-dialog appear where the user describes the building structure by input the lowest and highest level. Next he has to fit his indoor maps into existing OpenStreetMap data or GPS-tracks. It is recommended to use the plug-in Piclayer to complete this task.

When the fitting process of the indoor maps is completed, the user can start to map the indoor data. First he selects the level he wants to edit in the "Working Level" dropdown menu. Next he selects an indoor object he wants to draw out of the "object" dropdown menu. Then he can draw the object, adds when needed a name and ref and applies the tags with the "Apply Tags"-button.

The recommended order of editing is:

  1. shell
  2. walls
  3. rooms
  4. windows
  5. stairways and elevators
  6. POIs (door/entrance)

Preset Buttons

On the right side of the plug-in you can find the preset button section. These buttons are created depending on what objects you are using the most. To use these presets, just draw an object and click on the preset you would like to apply.

Data scheme

Visualization of the new mapping scheme

The data scheme which underlies the plug-in is based on the F3DB approach but has some differences or improvements. It is completely based on tags and is therefore easy to understand.

Here is the complete set of tags which is used by the plug-in:

Key Value Description Usable with
indoor:level=* the number of the level
  • describes in which level the object appears
  • is added to every single way or node, which is created with the plug-in
closed waywayMf node.svg
indoor:level:name=* the name or function of the level
  • optional
  • can be used to describe a special function of a level (e.g. parking level)
closed waywayMf node.svg
indoor:area=* possible values:
  • shell (for the outer shell of the building)
  • wall
  • room
  • elevator
  • stairways
  • describes an area of the building
closed way

possible values:

  • concrete
  • glass (for windows)
closed way
name=* the name or function of the room
  • can be used with the tag indoor:area=room
  • describes the funtion of the room
closed way
ref=* the reference number of the room
  • can be used with the tag indoor:area=room
  • describes the reference of the room (e.g. room number)
closed way
  • can be used with the tag indoor:area=room
  • used to tag indoor toilets
closed way
  • has to be used with amenity=toilets
  • for female toilets
closed way
  • has to be used with amenity=toilets
  • for male toilets
closed way
  • can be used within a stairways area
  • describes the walking direction of a stairway
  • describes an entrance to a room
  • should be on a way tagged with indoor:area=room
Mf node.svg
  • describes an entrance to the building
  • should be on a way tagged with indoor:area=shell
Mf node.svg

Data Validation

MapCSS Rendertheme

Rendering of the MapCSS rendertheme in low, mid and high zoom levels

The first way of data validation is the MapCSS rendertheme which comes with the plug-in. It is installed during the first start. Furthermore it is activated when the plug-in is turned on and deactivated when it is turned off. Thus the user doesn't have to care about to care about it and has a instant graphical validation of the mapped data.

The rendertheme uses the zoomlevel filtering of MapCSS to show the data in different ways depending on the zoom level of JOSM. For exmaple in a high zoom level every detail is shown and in a low zoom levels rooms and POIs are hidden.

JOSM Validator

The other method which can be used to validate the data is the JOSM validator file which is also installed with the plug-in. Like the MapCSS rendertheme it is also activated when the plug-in is activated.

The validator alarms the user if following mapping errors occur:

  • way or node without the tag indoor:level=*
  • properties which should be only assigned to ways are assigned to nodes
  • properties which should be only assigned to nodes are assigned to ways

The validation check is done everytime when the user clicks the "Apply"-button or a preset button.


  • No connections between levels
  • It's just a graphical representation
    • therefore not suited for routing
  • It is no usable standard (yet)


Created by User:Erigrus. Please submit your bug reports.

Source Code: SVN

See also

  • [1] - The plug-in was devoloped in this bachelor thesis. It can be seen as a detailed (German) documentation.