Key:level - OpenStreetMap Wiki
Key:level
From OpenStreetMap Wiki
Jump to navigation
Jump to search
Help
Key:level
In other languages
Afrikaans
asturianu
azərbaycanca
Bahasa Indonesia
Bahasa Melayu
bosanski
brezhoneg
català
čeština
Crnogorski
dansk
eesti
Esperanto
euskara
Frysk
Gàidhlig
galego
hrvatski
Ido
interlingua
íslenska
italiano
Kreyòl ayisyen
kréyòl gwadloupéyen
kurdî
latviešu
Lëtzebuergesch
lietuvių
magyar
Nederlands
norsk
norsk nynorsk
occitan
polski
português
română
sardu
shqip
slovenčina
slovenščina
srpski (latinica)
suomi
svenska
Tagalog
Tiếng Việt
Türkçe
Zazaki
Ελληνικά
беларуская
български
македонски
монгол
русский
српски / srpski
українська
հայերեն
עברית
العربية
سرائیکی
فارسی
پنجابی
پښتو
नेपाली
मराठी
हिन्दी
বাংলা
ਪੰਜਾਬੀ
தமிழ்
മലയാളം
සිංහල
ไทย
မြန်မာဘာသာ
한국어
ქართული
ⵜⴰⵎⴰⵣⵉⵖⵜ
中文(简体)
中文(繁體)
粵語
Other languages...
level
Description
Zero-based floor number of a feature (where 0 is the ground level and -1 is the basement).
Group:
buildings
Used on these
elements
Useful combination
room
=*
shop
=*
amenity
=*
office
=*
highway
=*
layer
=*
Status:
de facto
level
More details at tag
info
Tools for this tag
taginfo
AD
AT
BE
BR
BY
CH
CN
CZ
DE
DK
FI
FR
GB
GR
HU
IE (N+S)
IN
IR
IT
LI
LU
JP
KP
KR
NL
NO
PL
PT
RU
ES
AR
MX
CO
BO
CL
EC
PY
PE
UY
VE
TW
UA
US
VN
overpass-turbo
QLever
Postpass via overpass-turbo
OSM Tag History
The
level
=*
key indicates the floor level where a feature (such as an amenity or a shop) is located in a building. By convention, the value of zero indicates the ground floor, and negative numbers indicate underground floors. See
Simple Indoor Tagging
for further information.
Add
level:ref
=*
to specify how a floor is indicated in the multistory building itself (on elevator buttons, on landings, on mailboxes, on maps of the shops and amenities of the building, in parkade levels) where this differs from the level value. Example: use tags
level
-1
and
level:ref
B1
on the first basement car park if it is marked as such in the elevator. See
section
below for more details.
Highways (and other ways) can be also tagged with
level
=*
when they are essentially bound to a floor of a building complex (such as multilevel
parking
buildings,
railway stations
or
airports
).
But for typical crossings of roads, waterways or railways via bridges or tunnels,
layer
=*
should be used instead.
Roads or other ways passing through buildings should be marked with
tunnel
building_passage
. They should be only marked with level if they allow access to a specific level of the building.
Contents
Values
Ground floor number
Level designations
Multiple values
Example
See also
References
Values
The value of the
level
=*
is numerical and used to denote the vertical order of the floors. Usually,
level
is the ground floor,
level
the floor above it and basement floors start with
level
-1
level=0 corresponds here to the level with the letter D
If the building is partially buried, level 0 will correspond to the lowest level that has a part above ground in order to remain consistent with the
Simple 3D Buildings
specification's
building:levels
=*
key.
It is not essential to have an exterior door for this level, the simple fact that part of the level is in the open air is enough to consider it as the ground floor.
Thus a
shop
=*
located at level D will be tagged with
level
, an
entrance
=*
located on the right of C will be tagged with
level
and an
amenity
=*
located in the fully underground basement E will be tagged with
level
-1
Level A is the first level in the roof but the tag
level
=*
is used for all levels of the building therefore level A will be tagged with
level
A building may skip certain level numbers, such as
floor 13
in some Western countries (mainly USA) or floors
4 and 14
in Chinese-speaking countries. In this case tag the building with
non_existent_levels
=*
to prevent data consumers from miscounting features on floors above the skipped level.
Ground floor number
This key's zero-based numbering scheme is consistent with the floor numbering system used in many countries. However, it differs from the one-based numbering scheme used in many other countries for both wayfinding and addressing. There are also countries where both systems are in everyday use. Moreover, idiosyncratic numbering systems are used in individual buildings throughout the world, especially in large, complex buildings such as shopping malls, hospitals, and airports.
Countries by floor numbering scheme.
"Basement", "ground floor", "first floor"
"Basement", "first floor", "second floor"
Varies by language or region
In general, the
level
=*
key ignores these distinctions in favor of the zero-based numbering scheme, because the
level
=*
key was originally envisioned as a machine-readable key for 3D building rendering. Data consumers that support the
Simple Indoor Tagging
require values to be numeric and consecutive, even for basements and mezzanines that in reality are known by mnemonics such as "B", "B1", "G", "M", and "2M".
level
=*
values are largely zero-based even in many regions where the one-based numbering system is prevalent in everyday life. However, mappers overwhelmingly skip
in Kazakhstan, Korea and Mongolia, beyond any rate that could be explained by mappers treating
as an implicit default value:
level
=*
usage in one-based countries as of March 2022
Country
High % for 0 indicates zero-based usage
Low % for 0 and high % for 1 indicates one-based usage
(%)
-1
-1
(%)
(%)
(%)
(%)
Belarus
1,695
25.48%
1,996
30.01%
1,598
24.02%
0.00%
0.00%
Canada
9,801
46.69%
2,024
9.64%
5,827
27.76%
0.00%
0.00%
Chile
152
18.29%
46
5.54%
310
37.30%
0.00%
0.00%
China
3,618
25.06%
1,680
11.64%
3,880
26.87%
0.00%
0.00%
Colombia
263
10.70%
1,568
63.79%
301
12.25%
0.00%
0.00%
Ecuador
186
28.88%
45
6.99%
226
35.09%
0.00%
0.00%
Finland
3,232
34.10%
742
7.83%
3,149
33.23%
0.00%
0.00%
Japan
21,437
41.76%
3,896
7.59%
11,430
22.27%
0.00%
0.00%
Kazakhstan
44
8.71%
31
6.14%
337
66.73%
0.00%
0.00%
Moldova
131
44.71%
2.39%
51
17.41%
0.00%
0.00%
Mongolia
12
6.59%
1.10%
71
39.01%
0.00%
0.00%
North Korea
1.43%
22
15.71%
95
67.86%
0.00%
0.00%
Norway
1,988
30.64%
963
14.84%
1,581
24.36%
0.00%
0.00%
Peru
756
30.14%
125
4.98%
968
38.60%
0.00%
0.00%
Russia
9,084
24.89%
5,455
14.95%
10,611
29.08%
0.00%
0.00%
South Korea
246
4.88%
366
7.26%
2,497
49.52%
0.00%
0.00%
Taiwan
1,081
18.64%
678
11.69%
1,854
31.97%
0.00%
0.00%
Ukraine
3,468
44.36%
749
9.58%
2,131
27.26%
0.00%
0.00%
United States
41,537
40.65%
7,432
7.27%
26,598
26.03%
0.00%
25
0.00%
Regardless of each country's local tagging convention, inexperienced mappers unaware of the convention may occasionally tag
level
=*
based on the one-based system.
Some one-based tagging may have also been introduced because of
a previous version of this article
. Data consumers may be able to account for some discrepancies in floor numbering. For example, if some features inside a building have a
level
=*
value greater than the building's
building:levels
=*
value and none of the features in the building is tagged
level
, then a data consumer could decrement all the
level
=*
values by one.
Level designations
Main article:
Key:level:ref
Main article:
Key:addr:floor
When a building uses non-numeric or otherwise non-standard floor designations, tag the individual features on a floor with
level:ref
=*
, ideally in addition to
level
=*
to prevent mishandling by data consumers. For example, the Siam Paragon mall in Bangkok consists of the following floors: B, G, M, 1, 2, 3, 4, 4A, and 5.
. A shop on level 4A can then be tagged with
level:ref
4A
Tagging shops exclusively with
level:ref
=*
can be problematic because a data consumer cannot reliably determine the relative vertical order of each floor in the building. To consolidate this information, the
Simple Indoor Tagging
scheme suggests creating an outline for each level, tagged with
indoor
level
, adding both
level
=*
and
level:ref
=*
to it. This also works the other way round - if only
level
=*
is defined on the individual shops.
There is also an ongoing discussion on usage of fractional values, e.g.
level
0.5
or
level
1.5
for mezzanine floors and staircases. See the proposals for more examples.
Multiple values
A shop located on two levels of a building will for example have the attributes:
shop
=*
and
level
0;1
. The store is not necessarily accessible from both levels, you can possibly add an
entrance
=*
and/or a
door
=*
with the attribute
level
if the entrance is only from the ground floor.
If a room is repeated on multiple levels (it's a different room on another level but has identical dimensions and position in the building), draw a separate
element
for each room or use
repeat_on
=*
Similarly, a staircase could be tagged with
level
-1;0
meaning that it is present on (but again not necessarily accessible from) those two levels.
Use a hyphen (-) to specify a range of numbers with no missing values. E.g. the elevator of a 32-storey high-rise with two basement levels will be tagged
level
-2-32
Example
This article or section contains
questionable, contentious
or
controversial information
. See the
talk page
for more information.
Unclear usage of
non_existent_levels
=*
against
level
=*
level:ref
=*
, and
building:levels
=*
format and definition. Some tiny use (less than 100) exists for
non_existent_levels
, and
non_existent_levels
13
, as of 2025-11.
Talk:Key:non existent levels#non_existent_levels_in_the_US
A typical elevator in the United States
level
-2;-1;0;0.5;1-11;13
), (
level:ref
B2;B;1;M;2-12;14
Button label
level
=*
level:ref
=*
14
13
14
the building skips
13
add
non_existent_levels
12
to the building.
12
11
12
0.5
☆1
-1
B2
-2
B2
See also
layer
=*
- Used to mark the vertical relationship between two crossing or overlapping features, e.g. bridges and tunnels at highway or railway junctions.
building:levels
=*
- The number of above ground levels in a building, not including the levels in the roof and in the basement
roof:levels
=*
- The number of levels in the roof
building:levels:underground
=*
- The number of basement levels
addr:floor
=*
- The floor an apartment/flat is located.
repeat_on
=*
- For features that repeat on several levels / floors where similar copies of a feature can be found at the same position.
tunnel
building_passage
- A passage through a building, normally as an archway or overhang.
level:ref
=*
- For the marked floor number where this differs from the level value.
Indoor Mapping
Proposal:Level
References
Zwick, Tobias (January 20, 2019).
“The actual use of the level tag”
. Retrieved March 13, 2022
Directory of Siam Paragon on their website
Retrieved from "
Categories
Key descriptions for group "buildings"
Key descriptions
Key descriptions with status "de facto"
Buildings
Questioned content
Indoor
Placement
Uses semicolon in tag value
Hidden categories:
Pages unavailable in Italian
Pages unavailable in Dutch
Item with no description in language FI
Item with no description in language NL
Item with no description in language HU
Item with no description in language ZH-HANT
Navigation menu