IndoorHelper is a JOSM plug-in to create, validate and view indoor maps correctly. It helps you to stay at one tagging scheme (Simple Indoor Tagging) and makes it easy to tag indoor objects a fast way.
- 1 Summary
- 2 Usage
- 3 Plugin parts
- 4 BIM-Import
- 5 Data Scheme
- 6 Data Validation
- 7 Shortcuts
- 8 Limitations
- 9 Development
- 10 See also
This plugin helps you mapping indoor objects using the Simple Indoor Tagging scheme.
What is the plugin doing?
- makes it possible to tag objects with pressing just one button (includes automatically tagging of level=*-tag)
- guarantees to stay at Simple Indoor Tagging scheme
- makes it possible to create easy multipolygons in a fast way
- checks if objects always have a level=*-tag
- provides a MapCSS
After the installation the plugin appears in the sidebar of JOSM. To be able to use all plugin features it is necessary to do a short setup first before start mapping! This plugin uses different JOSM functionality for example the AutoFilter. The AutoFilter makes it possible to only show objects with a specific level=*-tag on layer what is necessary to map objects with more than one floor (alias level).
How to start
To be able to use all features do the setup first!
- use Piclayer plugin to fit indoor maps into existing OpenStreetMap data or GPS-tracks (recommendation). Make sure the mapping is done on a layer other than where the image is shown (two layers are needed).
- draw the first object (of a new level) with using the Insert level button (fully description below). Using the Insert level button makes sure the AutoFilter will work with your OpenStreetMap data. This step must be repeated with every new level you want to map!
|Map carefully and have a look at mapping tips and most done mapping mistakes below!|
The mapping works as follows:
- select the current working level with using AutoFilter button (if not already selected)
- draw the object
- choose a tag combination in the plugin
- make sure the object is still selected and press the apply-button. All tags should be insert to the object tag-list, also the level-tag (if not deactivated). To deactivate the level tagging select the checkbox next the working level field.
The recommended order of editing is:
- rooms, corridors, stairways, elevators and individual areas
- POIs (door/entrance)
- walls and windows
Why using this order?
This order provides a "layer-mapping"-scheme what means objects are mapped on top of each other. Rooms, corridors, stairs or elevators are on the bottom. Walls and windows are put above. Now, if walls and windows are filtered (not shown in layer), the basic objects (rooms etc.) fill out the whole floor-space.
Tips and most done mistakes
Most done mistakes
- door or entry nodes are not connected to a room, corridor etc. Always connect a door or entry node a basic object.
- door or entry nodes are connected to a wall. Do not map a wall object where a door or entry node should be. Interrupt the wall for a door or entry node.
- freestanding walls are not part of a relation. Map freestanding walls as a multipolygon with role= inner.
- if an object is repeated on another level use repeat_on=*-tag (description see below). It is possible to map the object only once. If the repeat_on=*-tag is used the right way the plugin helps you to still see the object on every working level you defined in the tag!
- stairways should be tagged with incline=*
- for more information how to tag specific objects have a look at Presets in JOSM editor!
|Level name||To add a name label to the level||Insert the optional level name with using the text field. Afterwards confirm with the apply button. The object will be tagged with level_name=*.|
|Working level||A dynamic field which shows you the current working level||This field always shows you the current working level you selected with using the AutoFilter buttons. This function is not working without the AutoFilter function. To makes sure the AutoFilter buttons appear on screen (left upper corner) use the Insert level button. The following status can be shown in the field:
|checkbox||To deactivate the automatic level tagging||If the checkbox is not ticked the current working level (shown on the left, Working level) will be automatically tagged to the object after pushing the apply button. To deactivate this function tick the checkbox. No more level tags will be related. The object will (not) be tagged with level=*.|
- tells if an object is connecting one or more level via stairways, elevators etc. (see also Simple Indoor Tagging)
- to simplify the mapping the plug-in makes it possible to map an object like stairways, elevators etc. ones (which are actually needs to be mapped on each level again) and tag it via the repeat_on field. Now the selected working level will also consider objects with a repeat_on=* -tag what means objects which are tagged with another level=* -tag but also with a repeat_on=* -tag including the current working level will also be shown on screen.
Insert Level Button
The Insert level button needs to be used if a new level wants to be added.
How to add:
|1||Push the Insert level button to open the level selector window.|
|2||Insert the new level number (example: 1, -4, 0).|
|3||Push the OK button to close the window. Automatic switch to drawing action follows.|
|4||Draw the object and press the |
This panel makes it easy to tag objects with popular tags on a fast way.
|Object||The dropdown menu shows you some optional tags which are often used during indoor mapping. If no object tagging is requested select |
The following will be tagged:
|Name||Tags the object with a name tag (example: |
|Reference||Tags the object with a reference tag (example: |
|Repeat_on||Tags the level area the object contains (example: |
On the right side of the panel 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.
Caution: this function is to add simple multipolygon objects only.
The recommended order of editing is:
- add outline member with outer button
- add inner member with inner button.
How to add:
|1||Push the outer button to select the drawing action.|
|2||Draw the object and press the |
|3||Push the inner button to select the drawing action.|
|4||Draw the object and press the |
If you want to add more than one "inner"-object skip step 1,2 and restart at step 3. To deactivate the multipolygon function of the plug-in just tick the checkbox next to the inner button.
The plugin includes an import functionality for
.ifc (BIM) files. To import a new
.ifc add a new layer and use the BIM import button (File -> Import BIM File). Please note that the import functionality is in beta state! For more information about how to translate BIM objects into OSM objects see Wiki Building Information Modeling.
The data scheme which underlies the plug-in is based on the Simple Indoor Tagging approach but has some differences or improvements. It is completely based on tags and is therefore easy to understand.
To hold it simple the most important objects are directly tagged with indoor=*. To make sure the tagging is always on Simple Indoor Tagging standards specific objects will be automatically tagged with needed tag-combinations (example:
TOILET_FEMALE : indoor=room, amenity=toilets, female=yes). For more information see Tagging Bar.
The first way of data validation is the MapCSS rendertheme which comes with the plug-in. It is installed during the first start. Thus the user does not have 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 example in a high zoom level every detail is shown and in a low zoom levels rooms and POIs are hidden.
The other method which can be used to validate the data is the JOSM validator file which is also installed with the plug-in.
The validator alarms the user if following mapping errors occur:
- way or node without the tag 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 every time when the user clicks the "apply"-button or a preset button.
spacebar: finish drawing of objects created via the plugin
enter: Confirm the selected multipolygon to edit an inner-role member
(For further information see Multipolygon Bar, Insert Level Button)
- It's just a graphical representation
- therefore not suited for routing
- It is no usable standard (yet)
Created by User:Erigrus
Source Code: JOSM/indoorhelper