JA:条件付き制限
地物 : 条件付き制限 |
説明 |
条件に依存する制限をタグ付けするために使用します。 |
タグ |
access:conditional=*, maxspeed:conditional=*, maxweight:conditional=*, oneway:conditional=*, overtaking:conditional=*, *:conditional=* |
この記事では、条件によって変わる制限のタグ付け方法を説明します。
access=private や maxspeed=60 などのように、特に条件がない制限タグについては、既に時速60km制限についてのタグ付けのような形で広く利用されています。もしその通行制限が特定の車両種別(あるいは交通手段)に対してのみ適用される場合、キーに対してこのページで説明される情報を付与することで、タグとキーの表現を拡張することが可能です。この例には、 oneway:bicycle=no や maxspeed:hgv=80 などを含みます。タグの中には交通手段そのものの情報が記述され、その交通手段に対してのみ制限が適用されることを明示します。例えば、 access:hgv=no ではなく、 hgv=no を使用してください。
通行制限のなかには、ある特定の条件が満たされた時にのみ適用される条項も存在します。具体的には、06:00〜20:00の間だけ時速60kmの速度制限が行われる、などです。前述した記述方法に従い、この場合は maxspeed:conditional=60 @ (06:00-20:00)として記述されます。
このタグ付け方法では、 OpenStreetMap に条件付き通行制限を追加する方法を説明します。
タグ付け
このスキーマでは、条件制限が無い通常のタグと同様の書式を使用します。ただし、以下の相違点があります。 キーに対して :conditional
という接尾語が接続されます。具体的な値としては、 '@'と制限条件が付与された数値や文字列によって構成されます。
タグの基本配置は以下のとおりです。(角カッコ [..] で囲まれている部分は任意)
<制限種別>[:<交通手段>][:<方向>]:conditional = <制限値> @ <条件>[;<制限値> @ <条件>]
特定の交通手段に対してのみ適用される通行制限タグである "access:"タグは、通常省略されます。
<交通手段>[:<方向>]:conditional = <制限値> @ <条件>[;<制限値> @ <条件>]
キー
キーは既存の制限タグと同じ方法で構築し、 :conditional 接尾辞を付けます。
制限種別
条件が付く可能性があるあらゆる種類の制限を示すことができます。よくある例としては、 access=* や maxspeed=* や oneway=* による制限があります。制限種別は、道路標識の「本標識」を反映します。例えば の標識に条件を示す補助標識がある場合、種別は access (通行制限)です。一方、 の標識は、 maxlength (最大幅)による制限条件を表現しています(他の最大<サイズ>の標識も同様です)。
交通手段
この記述箇所では、制限が適用される車輌種別、あるいは 交通手段 が指定されます。例えば、 bicycle, motor_vehicle, foot, agricultural などが記入されます。通行制限を記載する際の省略形として、種別指定の前部に記載されるべき access:の記述を省くことが許容されています。例えば access:motorcar ではなく motorcar と記載することが可能です。ただし、値として agriculturalを使用する場合は、道路の利用目的ではなく特定の車輌種別を定義するようにしてください。一般的には、最高速度の低い特殊車両やトラクターが利用されるはずです。
"交通手段"の階層構造の詳細についてはJA:Key:access#交通手段を参照してください。
方向
制限条項の中には、移動先への到達目的によって区別されるものもあります。"方向"による制限を表現するには "forward"と"backward"を使用してください。OpenStreetMapデータ上でのウェイの向きによって、値の内容が確定します。 エディタでウェイの方向を確認する方法や、その他のより詳しい情報については、"forward", "backward", "left", "right" の用語の説明を参照してください。
値
現行の(?)通行制限は、値の後ろに "@"と制約条件を記述することで表現します。 @ 文字の前後にそれぞれ半角ペースを挿入すると可読性が高まります。
大抵の場合、1つの状態を示す条件は1つだけですが、場合によっては 「値-条件」の組み合わせが2つ以上必要なことがあります。その場合、「値-条件」の組み合わせは、セミコロンで分割して表記します(should)。具体的には、速度制限が設定されている時間帯があり、なおかつ雨天時には別の(より低速の)速度制限が設定されている場合などが想定されています。複数の"値 - 条件"のペアを記述する場合、後述の 制限条項が競合する場合 を参照してください
制限値 (Restriction-Value)
この箇所には、通行制限の具体的な内容を記述します。例えば "yes"、"private"、"80"、"55 mph (訳注: マイル/時)"などです。この制限条件はいくつかの記法があります。例えば絶対単位(”yes”、"no"、あるいは”permissive"等、通行者すべてに適用される値)、あるいは道路の利用目的("destination"、"delivery"、"customer"、"forestry"、"agricultural"など)、明示的に誰かに付与された許可条項("private"、"permit_holder"など)での記述が可能です。
条件 (Condition)
このフィールドは、制限が有効となるための"条件 (condition)" が記載されます。具体的な制限条項は多岐にわたります。
- 日時: opening_hours=* タグの値 * の標準文法を使います。もし値にセミコロン(;)が含まれている場合は、条件を丸括弧で囲む必要があります。例: (Mo-Fr 07:00-19:00), (sunrise-sunset), (Jan-Mar)
- 道路のコンディション: 例えば wet, snowなどです。条件としての wet は、 maxspeed:wet=* における :wet に相当します。制限タグの記法に一貫性を持たせるため、wet を条件として用いることが推奨されます ("maxspeed:wet" は、条件付き制限をタグ付けする適切な方法がなかった頃に導入されたものです)。
- 車両の属性: 車両の属性には、weight、axleload、length、width、heightやdraught (船舶用) などがあります。比較演算子 (<, >, =) を用いて条件を表します。例 (weight<7.5)
- 車両の用途: 乗客数や貨物の種類など、車両がどのように利用されているかによる制限です。例: (occupants>1) ("hov" のついた車線の典型的な条件)、hazmat (危険物を積載する車両) など。
- 利用者の属性: 特定の利用者の属性ついての制限です。例えば doctor (医師)、disabled (障碍者)、emergency (緊急)、female (女性) などです。
- アクセスの目的: maxweight など数値の 制限値 を伴う 制限の種類 が適用される 条件 として、アクセスの目的による条件 (destination (目的地へのアクセス)、delivery (配達) など) または許可の種類による条件 (private (私用) など) をつけることもあります。例: maxweight=2.5 + maxweight:conditional=none @ destination
"wet"(訳注: 濡れた路面)や "Su" (訳注: 日曜日)など単純な場合を除き、 "condition" は丸括弧の中に入れることを推奨します。
複数条項による通行制限の記法: AND
2つ以上の"condition"を同時に記載する際には、演算子として "AND" を記述します。可読性を高めるため、大文字で書くことが推奨されます。 AND 演算子を記述した場合、2つ以上の条件がどちらも満たされた場合に、制限条件が成立したとみなされます。例えば 'access:conditional=destination @ (Sa-Su AND weight>7)' の場合、'Sa-Su(訳注: 土日)であり、なおかつ weightが7t以上'の場合にのみ、 destinationキーが有効となります。
デフォルトの制限値
通行制限の適用条件が明確に定められていない場合があります。そのような場合、デフォルトの通行制限を規定する必要があります。例えば "maxspeed=120" と "maxspeed:conditional=100 @ (20:00-06:00)" を両方とも指定します。また、場合によっては、明示的に記述する必要のないデフォルトの通行制限が存在する場合もあります。一般道(unclassified)など、ほぼすべての道路では access=yesであると仮定されています。道路区別ごとに定められているデフォルトの通行制限については OSM_tags_for_routing/Access-Restrictions を参照してください。 ともかく、conditional タグを使う場合はいかなる場合でもデフォルトの値を明確な形で示すことが推奨されます。
競合する制限条項の検証
1つのオブジェクトが競合する制限条項を有している場合、実際に適用される制限条項は以下のアルゴリズムに従います。
- より限定された交通手段についての制限条項は、より限定のゆるい交通手段についての制限条項よりも優先されます。たとえば公共サービス車両に対する制限の場合、"psv" のタグは "motor_vehicle" を上書きします。交通手段の階層構造についてさらに詳しい情報はJA:Key:access#交通手段による制限をご覧ください。
- 交通手段が同じである場合は、方向を指定した制限条項は、方向を指定しない制限条項よりも優先されます。
- 交通手段と方向指定の有無が同じである場合は、条件つきの制限条項は無条件の制限条項よりも優先されます。
- 一車線ごとに評価された Lanes (車線) についての制限条項は、(条件付きや方向付きであっても) 同一の交通手段についての制限条項よりも優先されます。
- 一車線ごとに評価された Lanes (車線) についての条件つき制限条項は、車線についての無条件の制限条項よりも優先されます。
- 同一のタグにマッチする値と条件の組が存在する場合、同一のタグのうち最も最後にマッチするものが実際の制限値として適用されます。そのため、より一般的な制限を最初に、より限定された制限を後のほうに記入する必要があります。例をいくつか挙げます:
- (access=yes) + access:conditional=no @ (09:00-17:00); destination @ (09:00-17:00 AND disabled) の場合は、午前9時から午後5時の間、障碍者が目的地にアクセスするための通行 (最後にマッチする) は許可され、その他の交通手段が許可されないと解釈されます。2番目の値にも同じ時間の条件を追加する必要があるということに注意してください。そうしないと、障碍者は17:00-09:00の間しか目的地へのアクセスのために通行することができず、他の交通手段では通行可能という意味になってしまいます。
- (maxspeed=none) + maxspeed:conditional=120 @ (06:00-20:00); 80 @ wet: この場合、路面が濡れている時、時間に基づく制限条項よりも「路面が濡れている場合のみ80」という制限条項が優先されることになります。
- (access=no) + access:conditional=delivery @ (07:00-11:00); customer @ (07:00-17:00): この場合、競合は発生しません。(アクセスの目的として指定できる条件はdestination, customer, delivery, agricultural, forestryのいずれかであり)ひとつの条件しかマッチしないからです。
タグの重複
この方法を利用した場合、以下のタグは通行制限タグと内容が重複します。
day_on=*, day_off=*, date_on=*, date_off=*, hour_on=*, hour_off=*
By-use モード
現在のタグスキーマでは、hov=*, emergency=*, hazmat=* および disabled=* を"交通手段"ではなく、"条件 (condition)"とするby-useモードを利用可能です。この書式により、access:conditional=destination @ (hazmat:A AND weight>7.5) のような複雑な記述方法が利用可能となります。このようなタグづけはこのスキーまでのタグづけと明確に重複しますが、 "by-use"モードでのタグ付けは、擬似的な "交通手段"ではなく、現実の条件として扱うことが推奨されます。
避けるべき利用方法
- 駐車車線に関する制限 (Parking lane restrictions) は、条件付けに対して独自の記法が定義されています。
利用例
写真 | タグ | 解釈 |
---|---|---|
maxspeed=130 maxspeed:conditional=120 @ (06:00-19:00) |
6時から19時までの最高時速制限 120 km/h、その他の時間帯は最高時速制限 130km/h (オランダの高速道路の例) | |
maxspeed=none maxspeed:conditional=120 @ (06:00-20:00); 100 @ (22:00-06:00) |
異なる2つの時間帯によって、最高時速制限が変動する (ドイツでの実例) | |
highway=pedestrian motor_vehicle:conditional=delivery @ (Mo-Fr 06:00-11:00,17:00-19:00;Sa 03:30-19:00) |
オランダの歩行者道における複雑な制限の一例。配達を目的とする通行 ("bevoorradingsverkeer") が、特定の時間帯にのみ認可されている。自転車 ("fietsen") による通行は、土曜日の 8時から16時までを除く時間帯は許可。原付 (訳注: Mofasとmopeds) ("snor- en bromfietsen") は全面的に通行禁止。 | |
access:conditional=destination @ (weight>5.5) | 5.5トンを超える車両は、明確な目的地(destination)としての進入以外禁止 | |
maxweight=7.5 maxweight:bus=none maxweight:conditional=none @ delivery |
最大重量の制限がありますが、これよりも優先的に maxweight:bus (より限定された交通手段が指定されているからです) と maxweight:conditional (maxweight= の値として同一の交通手段に対する条件付きの制限 - つまりnoneが指定されている -) が適用されます。そのため、最大重量7.5tはバスと配達目的 ('delivery') を除くすべての車両に適用されます。 | |
motor_vehicle:conditional=no @ (10:00-18:00 AND length>5) | 車長 5mを超える車両は、10時から18時まで進入禁止 | |
highway=tertiary motor_vehicle=no |
カメラ取締のある "bus gate" です。07:30から18:30の間、公共車両以外の動力車は通行が禁止されています。(標識の表示に合わせて)`motor_vehicle=no`をフォールバックとして使用する場合は、時間帯を反転させる必要があります。 | |
overtaking:hgv:conditional=no @ (Mo-Fr 06:00-19:00) | 平日の6時から19時まで、重量車両(heavy goods vehicles)の追い越し禁止 (オランダの高速道路の例) | |
oneway:conditional=yes @ Su |
日曜日は一方通行。ただし、自転車は常に双方向での移動が可能。2つ目のタグによって、 "自転車 (bicycle)"用の特殊制限を上書きしています。 | |
maxspeed=80 maxspeed:hgv:conditional=60 @ (weight>7.5) |
特定の交通手段ごとに条件付き速度制限を適用する例 |
関連情報
- Proposed_features/Conditional_restrictions: 承認された提案です。
- Proposed features/temporary (conditional): 提案/工事などにより一時的に閉鎖された道路
- Japan tagging/Acces:transportation_mode / 交通手段による制限 - 陸上交通 車両種別アクセス - 日本国内でのタグ付け指針
|