OsmAndでは、OpenStreetMapのデータを使用して、できるだけ現実に近いシールドを描くことにしました。
OpenStreetMapと一般的な表記
OSMには、一般的に受け入れられている道路シールドの記述方法がありません。 道路のルートは、タイプroute = roadの関係(「関係」)を使用して記述されます。 しかし、第一に、それらはインフラストラクチャが発達している国および/または強力なローカルOSMコミュニティを持つ国にのみ適しています。 第二に、通常、シールドの色と形状に関する情報が含まれていません。 そのため、OSMデータとともに、Wikipediaやsites.google.com/site/roadnumberingsystems/home/countriesなどのさまざまなオープンソースを使用しました 。
OSMで利用可能な情報を使用する主なアイデアは、道路関係を取り、ネットワークタグに応じて、シールドの色と形状、番号の色(ref)を割り当てることです。 念のため、範囲を地域または国に限定します。 ただし、これは限られた国でのみ有効です。 また、ref(道路番号)を解析し、その中からプレフィックスまたは何らかのシーケンスを抽出するアプローチがよく使用されました。
これと道路を含む国に基づいて、道路シールドの特性について結論が導き出されます。 3番目の方法:国によっては、番号範囲によって道路番号を指定するシステムがあります。 例:0から99-地域の道路、白い文字の付いた青い盾。 100-499-国道、黄色い文字の緑の盾など 時には、組み合わせたアプローチが使用されました。 また、OsmAndマップを作成すると、特定の国の道路番号を指定するシステムに応じて、シールドの優先順位に関する情報がそこに書き込まれます。
OSM wikiにはref:カラータグがあり、世界中で約5,000回使用されています。 ほとんどの場合、スペインで見られます。シールドパラメータを決定する上記の方法が機能しない数少ない国の1つです。 この場合、背景色はこのタグから直接取得されます。
アメリカ
米国では、状況は次のとおりです。 道路関係は非常によくマッピングされますが、シールドの定義は異なります。米国の州間高速道路、米国の州高速道路、二次高速道路、領土高速道路、州高速道路、郡高速道路があります。
ほとんどすべての州が州の高速道路に独自のシールドを使用しているため、状況は複雑です。 それらの膨大な数を考慮して、我々はこれらのシールドを簡単な方法で描くことにしました。
さまざまな州の道路シールドの例:フロリダ州ミネソタ州アイダホ州ノースダコタ。
多くの道路には、スパー、トラック、ビジネス、代替などの修飾子があります。 OsmAndでは、シールド自体の上に小さな長方形で表示されます-実際の標識と同じです。
カナダ
カナダでは、各州が独自の道路番号システムを使用しています。 例外はTranscanada Highwaysであり、OSMは独自のタグ付け方法を採用していません。 この問題は、さまざまなバリエーションのテキスト「transcanada」のコンテンツの道路名にチェックを追加するだけで完全に解決されました。
ヨーロッパ
ヨーロッパの国々の大部分は、たとえば米国のように、巻き毛シールドを使用していません。 代わりに、長方形のラベルが広く使用されています。 例外は、ハンガリー、ルーマニア、オランダ(stadsroute、市道)、ドイツ、ギリシャ、イタリアの高速道路です。 道路の種類は、背景色とテキストの色で示されます。
ヨーロッパの自動車ルートには、接頭辞Eと、緑色の長方形の背景に1〜3個の白い数字が付いています。 これらのルートは、米国の州間ルート(州間ハイウェイ)とある程度類似しています。 OSMにおけるこのようなルートの兆候は、関係route = roadおよびtag network = e-roadです。 データ処理の過程で、これらのルートの一部の関係にnetwork = e-roadタグが含まれていないことが判明しましたが、これは削除されました。
その他の国
現実にはどんな色や形が盾であるべきかを確定することが困難であることが判明した国(レバノン、モンゴル)があります。 これらの国では、道路シールドはまったく使用されていないようです。
イスラエル、韓国、サウジアラビア、およびその他の国では、他では使用されていないシールドを使用しています。
openstreetmap.orgのメインマップスタイルであるmapnikは、道路関係のデータを使用しません。 この事実は、歴史的な理由とともに、原則として、refタグがこれらの関係のすべての参加者に付加されるという事実につながりました。 同時に、道路の大部分は道路関係に含まれておらず、refタグの値が唯一のデータソースです。 したがって、refタグを削除して道路関係のみに依存することはできません。 代わりに、適切な道路関係がない場合、refタグを、道路関係から取得したタグを格納するために使用される内部データ表現に変換します。 これにより、マップスタイルのコードを簡素化できます。
公開時点で、OsmAndはほぼ全世界の道路シールドをサポートしています。 例外はアフリカの一部と中央アメリカの一部です。