From OpenStreetMap Wiki
Jump to navigation Jump to search
Public-images-osm logo.svg indoormark = beacon
A beacon inside a building. Edit this description in the wiki page. Edit this description in the data item.
Group: Indoor
Used on these elements
may be used on nodesshould not be used on waysshould not be used on areasshould not be used on relations (except multipolygon relations)
Status: approvedPage for proposal


Indoor location and navigation are fields of investigation that require a geographical information system to store information. Not only the layout of a building and navigation graphs, also the location of indoor beacons are important for such solutions. Inside a building, the problem to solve is very similar to air and sea transport, having the same objective: to position and guide a user through the venue.

Using indoormark tag it is possible to label several types of indoor beacons. The Ubica2 project developed by Zed with the collaboration of URJC is creating an indoor navigation system based on several indoor positioning technologies. Some of these technologies require the use of beacons such us:

  • ibeacons: they provide proximity location enabling triangulation positioning
  • NFC tags: they can provide the coordinate of the current position
  • QR codes: as the NFC tags, they can provide a known coordinate.

But all these items have to be deployed in a building and therefore, their information has to be stored in a geographical data base. Having this, navigation applications could query the information required to locate and guide the user.

How to Map

Place the indoor beacon node on an indoor wall, indoor column or outline of an indoor room which represents the beacon's location inside a building. Tag the node with indoormark=beacon, beacon:type=* and level=*.


The tag is defined in a similar way as is established for seamark and airmark tags. To this end, the key/value indoormark=beacon is used. Furthermore, we can identify a beacon with a number of attributes that allow for the accommodation of all information necessary.

The scheme devised as follows:

Key Value Comment Suitable for
required indoormark beacon Mandatory tag for defining a point which is a beacon All
required beacon:type String Distinguishes the type of the beacon: bluetooth, nfc, qr... All
optional beacon:address String Network address identifier ibeacons, NFC
optional beacon:uuid String Unique identifier given normally for ibeacons ibeacons, QRs
optional beacon:major Integer ibeacon major number ibeacons
optional beacon:minor Integer ibeacon minor number ibeacons
optional beacon:measured Integer signal strength calibration value of an ibeacon ibeacons
optional speech_output=yes/no yes/no bluetooth, nfc
required level * Level where the beacon is deployed. This is specified by Simple Indoor Tagging all

The only mandatory tag is the indoormark key but it is suggested to add some more information using the other tags shown in the previous table. In addition, the use of the level tag provides compatibility with the specifications written in the Simple Indoor Tagging wiki page. Doing all that, navigation systems could retrieve all the data they need to position the user. For instance, an ibeacon based application should know the major and minor numbers to distinguish any ibeacon. A NFC tag would give its unique address when detected and this value could be use to match an indoormark in OpenStreetMap and obtain its coordinates. See the examples below to know how this can be achieved.

Note: use beacon:uuid (universally unique identifier) or ref=* to distinguish individual beacons in a specific network from beacons belonging to other networks. The tag name=* should not be used for this purpose.


QR beacon

QR codes can be used to give a unique identifier when scanned. An approach to transform that to a position within a building is to match the unique identifier given by the QR with the item tagged in our OSM map. Doing this, we can get the coordinates and also the level where the QR is placed.

NFC tag

NFC (near-field communication) can be used in a similar way to QR codes. In this case, the address of the NFC is unique and the procedure to obtain the location could use its value to get the coordinates and level from the map.

bluetooth (ibeacon)

In the case of an ibeacon, we will need more data in order to make work our triangulation algorithm. Useful information to store is the uuid of the beacon, its major and minor numbers and the signal calibration value (measured)

Applies to

Bluetooth/BLE (Bluetooth® Low Energy) beacons, NFC tags and QR codes used mainly for indoor location purposes

JOSM style

Rendering could be done using icons preferably. In our project we are using a map style for JOSM in order to differentiate all types of beacons

Example of indoor beacons in JOSM