Commercial map services such as Google Maps
also offer indoor maps of shopping centres, airports or
stadiums (Google, 2021). For general map rendering,
vector tiles are preferably used. Pixel tiles only serve
as a fallback, e. g. because the browser does not fulfil
certain requirements. However, due to the proprietary
code, details about the rendering are not available. Al-
though Google Maps does not work with OSM data, it
is at least worth taking a brief look at their interaction
design. In contrast to other applications, the indoor
maps and level bar are not displayed automatically.
Instead, the building must be selected e. g. by a click
or a search query. The level display preferably shows
the exact level designation of the respective building
instead of a sequence of numbers. There are many
other companies that focus on indoor mapping, loa-
cation and navigation (MazeMap, 2020), (esri, 2020),
(Favendo, 2019), (mapwize, 2020). None of these
companies, however, allow an insight into their ren-
dering processes, because they are not open source.
Similarly the few provided demos do not offer novel
design techniques that might be of interest for later
prototypical implementation. Consequently, commer-
cial solutions do not offer free libraries that can be
re-used for the development of new map services.
3 METHODS
Figure 2: Overview: From OSM indoor data to rendered
maps (pixel tiles).
Figure 2 demonstrates the rendering process in which
we integrated indoor rendering. Starting from OSM
map sections, OSM indoor elements are filtered out
by means of the so-called tag-mapping file, trans-
ferred and stored as vector tiles in a so-called map file.
Thereupon, the selected indoor elements are rendered
by using a defined render theme, resulting in a map
visualisation based on pixels, so-called pixel tiles. In
the following sections, every component of this figure
is presented in more detail. We contributed to the ad-
vance of indoor rendering by realising the following
aspects, which will be explained in detail in the subse-
quent sections as well and highlighted with numbers
(1) to (4) in the next sections:
(1) Transfer of required indoor data with level or re-
peat on tag into Mapsforge vector tiles
(2) Render theme extension with render rules for in-
door elements
(3) Extension of the rendering library with an addi-
tional match check to an indoor level variable
(4) Extension of the tile identification by an indoor
level value for retrieval from the cache
3.1 OpenStreetMap Data Structure
OSM data is commonly represented in the widespread
eXtensible Markup Language (XML) and comprises
the basic elements node, way, relation and associated
tags. A node defines a point on the earth by the ge-
ographical coordinates longitude and latitude. A way
or path contains an ordered sequence of references to
nodes and can be understood as a polygon course. For
a way to describe an area the first and the last node
must be identical. The relation tag can be used to de-
scribe a relationship between two or more elements
The tag element may be used within node, way or re-
lation elements and is necessary to assign additional
meanings to them.
For mapping the interior of buildings, the Simple
Indoor Tagging scheme (SIT) (OpenStreetMap Con-
tributors, 2020c) was developed and is now the estab-
lished standard for OSM indoor mapping.
3.2 Simple Indoor Tagging
Figure 3 shows a schematic representation of all in-
door elements. SIT is based on the OSM elements de-
scribed in the previous section. For example, closed
ways or areas are used for the representation of
rooms. These elements are then described and clas-
sified in more detail using additional tags (Graichen,
2018). With the indoor key, surfaces can first be as-
signed to one of the following four indoor elements:
room, area, wall or corridor. Further details such as
room name or room number can be added with the
keys name and ref. All indoor elements can addition-
ally be connected with doors. A door is a single node
that is shared by both rooms or a way adjacent to both
rooms and is described by the key door. To define
over which levels a room or point of interest (POI)
extends, the level key is used. By means of this key,
an elevator extending from the ground level to the top
level of a building, can be mapped for example. In
the special case where geometrically identical indoor
elements can be found repetitively on multiple levels
they may only be defined once supplemented by the
repeat
on key.
To create a map data visualisation from this data,
so-called ”renderers” are programmed, which process
the data and convert it into a visual representation.
Development of a Platform-independent Renderer for the Rendering of OpenStreetMap Indoor Maps in Flutter
149