JA:Simple Indoor Tagging
シンプル屋内タギング(Simple Indoor Tagging)は屋内マッピングのためのタグ付け方式です。使いやすさを保ちながら、複雑な状況にも対応できる包括的な設計になっています。
屋内ナビゲーション・経路案内、フロアプラン、公共建築物向けの3Dマップなど、さまざまな用途に対応することを目的としています。
このモデルの主な特徴:
level=*タグを使用して、建物の各階に要素を割り当てる
- 部屋や廊下などの屋内空間をエリアとしてマッピングする
- 屋外と屋内の両方に存在する特徴については、既存のOSMタグを利用する。
シンプル3Dビルディング(Simple 3D buildings、S3DB)との互換性は、シンプル屋内タギングの明示的な目標です。シンプル屋内タギングとS3DBを組み合わせる場合は、両方のタグを同時に使用してください。
歴史
シンプル屋内タギングは、2014年にSimonPoole、Tordanik、Peda、Andiによって最初に作成された、厳選された標準です。その後、2022年および2026年のOSM屋内ワークショップなど、マッパーやデータ利用者の実際の使用から得られた教訓に基づいて更新が行われています。
モデル / タギングスキーマ
以下のセクションでは、モデルを紹介し説明します。
シンプルなPOIマッピング

OSMでのオブジェクトマッピングは、最初からすべてを詳細に追加する必要がない場合に最も効果的です。ほとんどの場合、マッピングは大まかな段階から詳細へ、さらには超精細なレベルへと進んでいきます。これをサポートするために、詳細なフロアプランがない場合でも可視化やルーティングが可能なシンプルなPOIマッピング方式を定義する必要があります。
一つのアプローチは、そのようなノードに単純に「level」タグを付けることです。これを利用しやすくするために、建物のアウトラインまたは建物リレーションにmin_level=*とmax_level=*をタグ付けすることを推奨します。
最も単純なケースでは、建物ポリゴンへの2タグの追加とPOIへのlevelタグの追加だけで、粗い可視化が機能します(追加の屋内要素なしではルーティングはサポートされません)。
| キー | 説明 | 値の例 |
|---|---|---|
level=*
|
POIが位置する物理的なレベル番号 | level=3、level=-1
|
level:ref=*
|
POIが位置する標識表示上のレベル番号 | level:ref=B1、level:ref=LG、level:ref=G、level:ref=1
|
建物
屋内カバレッジのある建物をデータ利用者が見つけやすくするために、min_level=*とmax_level=*タグを推奨します。一部の国ではレベル値が割り当てられないことがあります(例:西洋諸国の13階、東アジアの4階)。これらのケースのマッピングを容易にするために、non_existent_levels=*を提案します。
| キー | 説明 | 値の例 |
|---|---|---|
min_level=*
|
最小屋内レベル | min_level=-1
|
max_level=*
|
最大屋内レベル | max_level=14
|
non_existent_levels=*
|
オプション:地域的な理由などで存在しないレベル | non_existent_levels=4;13
|
屋内要素

屋内空間の全体的なレイアウトは、indoor=*要素とlevel=*タグによって記述されます。
| キー / 値 | 要素 | 説明 |
|---|---|---|
indoor=room
|
壁のある通常の部屋。 | |
indoor=area
|
壁で(完全に)囲まれていない領域。壁が存在するのは、明示的に indoor=wallでマッピングされている場合、または、隣接する部屋によって定義されている場合のみです。
| |
indoor=corridor
|
部屋をつなぐ囲まれた通路エリア。indoor=areaと同様に、必ずしも壁に囲まれているとは限りません。
| |
indoor=wall
|
個別の(通過不可の)壁要素(すでにindoor=roomで十分に定義されていない場合に使用)。#壁を参照。
| |
indoor=level
|
建物レベルの高度なモデル化にオプションで使用可能。フロアの概要を説明し、フロア名などの追加情報を入力する場所を提供します |
屋内空間
シンプル屋内タギングでは、屋根のある屋内空間(例:部屋、階段、廊下)は、 エリア(閉じた通路またはマルチポリゴン)としてマッピングされます。
主な違いは、indoor=roomとindoor=areaです。前者は、空間が四方を壁で囲まれている場合(マルチポリゴンの内側のリングを含む)に使用され、後者は、明示的にindoor=wallとマッピングするか、または、隣接する部屋によって定義された場所にのみ壁があります。
さらに、indoor=corridorは、特定の機能を持つindoor=areaの非常に一般的なタイプの1つとして存在します。それ以外の場合、部屋またはエリアの用途はroom=*サブタグで記述できます。屋内要素には、他にもたとえば以下のようなタグを追加できます。
| キー | 説明 | 値の例 |
|---|---|---|
level=*
|
必須 :屋内要素が位置する階 | level=111、level=-1
|
name=*
|
屋内要素の名称(例:部屋の名称) | name=Vesalius Aula、name=Audimax
|
ref=*
|
屋内要素の参照番号(例:部屋番号) | ref=101、ref=01.15
|
height=*
|
屋内要素の個別の高さ(デフォルトの単位はメートル) | height=3、height=2.5 m
|
壁
すべてのindoor=roomエリアは、壁に囲まれていると想定されます。さらに、indoor=wall + level=*でタグ付けることで壁を明示的にマッピングすることも可能です。これは、例えば、2つのindoor=areaを隔てる壁をマッピングする場合、壁に幅(width=*)などの追加タグを付ける場合、あるいは不規則な形状の壁をエリアとしてマッピングする場合などに有効です。

壁は通常、壁の中心線に沿った ウェイとしてマッピングされ、これが推奨される表現方法です。しかし、不規則で不均一な壁を表現するために、壁を
エリアとしてマッピングすることも可能です。その場合、
indoor=wall + area=yesというタグが付けられます。
いずれの場合でも、indoor=wall要素は、壁に隣接する室内空間とノードを共有する必要があります。同様に、個々の室内空間も、現実世界で壁を共有する箇所でノードを共有する必要があります。部屋がindoor=wall要素(ウェイまたはエリア)とノードを共有する場合、明示的にマッピングされた壁が、部屋の輪郭のその部分における暗黙の壁を置き換えます。
部屋間の接続は、壁の通路にドアノードを配置することで示されます。詳細は該当セクションを参照してください。ドアノードは、通路としてマッピングされた壁(または部屋の輪郭線で示された暗黙の壁)にのみ配置でき、エリアとしてマッピングされた壁には配置できません。
ドアと窓
ドアは、indoor=doorとdoorの両方を持つノードとしてマッピングします。ドアノードは、そのドアがつなぐ部屋同士および壁ウェイ(あれば)によって共有されます。建物の出入り口となるドアは、慣例としてindoor=doorではなくentrance=*とタグ付けされますが、doorキーも保持されます。
| キー | 値 | 要素 | 説明 |
|---|---|---|---|
door
|
yes
|
種類不明のドア | |
no
|
壁の開口部で通行は可能だがドアが設置されていない | ||
| * | 特定の種類のドア。可能な値についてはKey:doorを参照 |
窓も同様に、壁、部屋のアウトライン、建物のアウトライン上のノードとしてマッピングします。内壁・外壁の両方に存在できます。
| キー | 値 | 要素 | 説明 |
|---|---|---|---|
window
|
* | 単一の窓の位置(repeat_on=*と共に使用した場合は窓の垂直列)
|
ドアや窓を詳細に説明するための追加タグを付けることができます。これらのタグ付け標準はシンプル屋内タギングとは別に提案・文書化されています。例えば以下を参照してください:
垂直方向の接続
階段室とエレベーター
階段とエスカレーターはマルチレベルの部屋と同じロジックに従います。複数のレベルにまたがり、各フロアでdoor=*ノード(物理的なドアがない場合はdoor=noを含む)を介して他の屋内空間(indoor=corridorなど)と接続されます。
セミコロン区切りのレベルリストまたはレベル範囲を使用して、階段やエレベーターが対象とするレベルを定義します。例えば、レベル0と1をつなぐ階段にはlevel=0;1またはlevel=0-1を使用できます。レベル2と4をつなぐ階段にはlevel=2;3;4またはlevel=2-4とタグ付けします(その階段からレベル3にアクセスできるかどうかに関わらず)。
一様な階段や古典的なエレベーターでは、同じ方法でドアノードが重複します。ノードは同じ緯度・経度座標にあり、levelの値のみが異なります。このようなケースでは、repeat_on=*タグを付けた単一のdoor=*ノードを使用することを推奨します(例:repeat_on=1;2またはrepeat_on=1-5)(詳細は以下を参照)。屋内データの利用者には、前処理中にこれらのオブジェクトを複製し、それぞれにレベル値を1つずつ使用することを推奨します。マルチレベル機能と繰り返し機能のセクションも参照してください。
| 写真 | ユースケース | タグ付け |
|---|---|---|
| 階段室 | stairs=yes + 壁がない場合は indoor=roomまたはindoor=area(エスカレーター付き階段の場合は + conveying=yes)
| |
| エレベーター | highway=elevator + indoor=room、または壁がない特殊なケースではindoor=area
|
ステップ
階段室の外にある、またはオプションで階段室内の詳細として追加できる個別の段差(フライト)は、適切なlevel=*タグを付けたhighway=stepsウェイとしてマッピングできます。階段室やエレベーターと同様に、levelの値はレベル範囲またはセミコロン区切りのレベルリストである必要があります。

屋外の段差と同様に、ウェイに加えてarea:highway=stepsポリゴンを描くことで、段差の範囲をオプションでマッピングできます。ウェイとポリゴンに同じlevel=*を追加してください。
| 写真 | ユースケース | タグ付け |
|---|---|---|
| 段差 | highway=steps
| |
| エスカレーター | highway=steps + conveying=yes
|
各階(フロア)の高度なモデル化

同じ階にあるすべての要素には、同じlevelタグを付けます。
| キー | 説明 | 値の例 |
|---|---|---|
level=*
|
要素がどのレベルにあるかを表します(0は通常地上レベル、-1は最初の地下フロアなど) | level=0、level=-2、level=3
|
建物ごとのローカルなレベル表記を再利用してください。例えばミュンヘン空港では、3が地上レベルです。
オプションのレベルアウトライン(indoor=level)に追加できる合理的かつ適切なキーと値を以下の表に示します。
| キー | 説明 | 値の例 |
|---|---|---|
name=*
|
対応するレベルの名称 | name=Ground floor
|
level:ref=*
|
レベルの番号またはコード。建物内のフロアプランやエレベーターボタンに表示されているレベル番号体系をモデル化するもので、level=*の値とは異なる場合があります。 | level:ref=K level:ref=E level:ref=3
|
height=*
|
レベルの高さ(デフォルト単位はメートル) | height=4
|
level=*
|
現在のレベルが持つレベル番号を表します(0は通常地上レベル、-1は最初の地下フロアなど) | level=0、level=-2、level=3
|
マルチレベル機能と繰り返し機能
| キー | 要素 | 説明 | 値の例 |
|---|---|---|---|
level=*
|
前述のケースに加え、複数のレベルにまたがる機能(例:階段、エレベーターシャフト、吹き抜けの高い部屋)はlevelの値に複数のレベルをリストすることでマッピングできます | level=1;2、level=-1-5、level=-4--2
| |
repeat_on=*
|
他のフロアに同一のコピーがある機能は、このタグを使って単一のノードとしてマッピングできます。これは必要な場合に限り控えめに使用すべきです(窓やエレベーター/階段のドアに多く見られます)。開始レベルはこのリストに含まれません。例えばlevel="0"の機能の場合、repeat_onは"1"から始まります。 | repeat_on=1;3、repeat_on=0-6
|
関連項目
- 他の・過去の屋内タギング方式: Indoor Mapping#Previous tagging proposals



