JA:地物ひとつにOSM要素はひとつ

From OpenStreetMap Wiki
Jump to navigation Jump to search

地物ひとつに OSM 要素はひとつグッドプラクティスの原則のひとつです。地上にある実世界の地物ひとつを OSM 要素ひとつだけでマッピングするべきだという意味です。

オブジェクトのマッピング

一般的なルール

1つの OSM 要素で地上の地物を一度、そして一度だけ表現してください。

  • 複数の建物で構成される地物(例:学校)は、敷地を一つのエリアオブジェクトとしてマッピングし、その中に建物を複数のエリアオブジェクトとして作成してください。建物毎に異なるタグでない限り、タグは建物ではなく、敷地に付与します。データベース利用者は、学校の敷地内に置かれた建物は学校の一部とみなすことができます。
  • 形状と位置が分かる建物からなる地物は、適切なタグの付いたエリアオブジェクトとしてください。
  • 位置は分かるものの、形状が不明か重要ではない地物は、適切なタグが付いたポイントオブジェクトとして表現してください。
  • いくつかの小さな地物で構成される地物はリレーションを使って記述するのが最適です。例えば、複数の highway=*railway=* で構成されるハイキングコースや公共交通機関の路線はroute リレーションを使います。

悪い状況の例

  • 単一用途の建物を表すエリアオブジェクトの中にポイントオブジェクトがあり、両方が同じ地物を表している場合。タグをエリアオブジェクトに移してポイントを削除してください。
  • 敷地を表すエリアオブジェクト上に、タグ付けされた建物を表すエリアオブジェクトが一つだけあり、両方が同じ地物を表している場合。タグを外側のエリアオブジェクトに移し、内側のエリアからは削除してください。
  • 2つの地物でタグ付けされた閉じたウェイ。1つは通常barrier=hedgeのような線形のウェイで、もう1つはamenity=schoolのようにエリアを表すタグの場合です。この場合、そのbarrier(障害物)がエリアを表すのか線形なのかが曖昧であり、すべてのプロパティがどの地物のものかが不明です。このような場合にはbarrier=hedgeamenity=schoolに対して別のリレーションを作成し、閉じたウェイウェイを両方のリレーションのメンバーとして、タグをウェイから関連するリレーションに移動させます。
  • ホテルの中にホテルとレストランを1つのオブジェクトとしてマッピングし、1つのノードまたはエリアにtourism=hotelamenity=restaurantのタグ付けをする場合。すぐにopening_hours=*などの詳細なタグ付けをする場合に問題となります。
  • 近くにある居酒屋とATMを1つのノードでamenity=pub;atm, name=Lone Buffalo;Credit Bank, opening_hours=24/7のようにタグ付けすること。
  • 建物の中に1つのオブジェクトとしてbuilding=*, shop=*, name=*でタグ付けされた店舗(これらのタグは通常この店舗のみに適用)。これは議論の余地があり、すべてのプロパティがすべての機能に同時に適用される限り、一般的に受け入れられています。

複数のタグが必要かもしれない状況

area Top Dog Hot Dog and Furniture Outlet, この状況の特に珍しい例

この原則は絶対的なものではありません。実用性の問題として、一部の機能は複数回表現されます。地物を表現する際のノード/ウェイ/リレーションの微妙な意味の違い、またはデータ利用者のニーズが非常に異なるため、あるいはタグの移行期間中に後方互換性を維持するためです。例として以下がありますが、これらに限定されません。

  • 同じ場所にある、何かひとつ以上のもの: 例えば同じグラウンドを共有している2つの学校。学校に別々の建物がある場合は、それらを建物としてマッピングし、地面をlanduse=educationでタグ付けできます。複数の学校が同じ建物内にある場合、両方を amenity=school(通常はノード)としてマッピングする必要があります。
  • 多目的ビル: 建物はbuilding=*でタグ付けします。
    • 建物自体に他の機能を含むといえる明確な主要な機能がある場合、主要機能を建物自体にタグ付けし、他の機能を建物の中にマッピングすることができます(例:ホテルの中のレストラン、ショッピングモール内のお店など)。
    • 建物に他の機能を含む主要な機能がない場合は、建物の中にすべての機能をマッピングします(例:別々の入口を持つ複数の店舗を持つ建物)。
    • 建物の中にマッピングされる地物はノードかエリアです。必要に応じて、屋内マッピングで建物の中のレイアウトを明確にすることができます。
  • は通常中心地にノードとしてplace=villageでマッピングし、name=*などでタグ付けします。村内の住宅地エリアは別のオブジェクトとして扱い、他のlanduse=*と同様にlanduse=residentialで個別にマッピングする必要があります。
  • オブジェクト指向マッピングと機能指向マッピング: 同じオブジェクトを2回マッピングすることができます。1回目は機能上の理由(例:ルーティング)で、もう1回はオブジェクト指向の目的(例:実際の形状やオブジェクト情報をマッピングするため)です。例えば、道路や水路などのルーティング可能なネットワークを形成する地物は、ルーティングの目的で (川岸の浅瀬のように物理的に中断されている場合でも)連続した線形のウェイウェイ表現(highway=*)を使用してマッピングされますが、実際の交差点の形状と位置は、エリアエリア(area:highway=*) で表されます。これはたとえば、異なる表面を持つ2つの道路の交差点の表面が何であるかを示すことができます。他の例は橋です。道路でbridge=yesを使用することは、経路検索に橋があることを伝える機能マッピングの例です (最大車両重量などのオプション情報を使用)。オブジェクト指向でマッピングする場合、橋の実際の形状 (フットプリント) はman_made=bridgeでマッピングでき、橋の名前やウィキデータなどの情報を付加できます。 実世界の同じ機能が、異なる目的で2回マッピングされています。
  • は通常水で覆われた領域をnatural=water + water=riverで表現し、川の流れに沿って1つ以上のwaterway=riverがついたルーティング可能な直線的なウェイで川の流路を表現します。name=*などのタグはウェイにつけます。
  • 長い線形の地物: 川などが非常に長い場合は実用的な目的で複数のウェイに分割することがあります。
  • ライン上の属性: surface=*, lanes=*, turn:lanes=*, maxheight=*のようなタグの値が変わる場合はhighway=*のウェイを分割する必要があります。これはwaterway=riverのような他の地物にも適用されます。
  • 地上にある単一の地物がOpenStreetMap上で複数の要素に分割されている場合、川全体を表すwaterway リレーションのように1つの要素にグループ化することができます。
    • このようなリレーションはウェイを使用したタグ付けに取って代わるものではなく、多くの場合それを置き換えることができないことに注意して下さい。例えば、1つの川が地域によって異なる名称を持つことがあります。
  • 森林、湿地、貯水池など複数のサブエリアからなる名前付きの自然エリア。 一部のマッパーは、すべてのサブエリアに対してname=*タグを繰り返すことを好みますが、これは議論の余地があり、サブエリアに独自の名前がある場合は機能しません。

複数のタグ

地物ひとつに OSM 要素はひとつの原則はノード/ウェイ/リレーションの要素に関係しますが、タグには関係しません。

一部のオブジェクトには、同じことを説明する複数のタグが含まれている場合があります。例えばwaterway=riverbanknatural=water+water=riverは全く同じ意味を持ちます。

このような二重タグ付けは、特定のルールに反するものではありません。 状況に応じて、許容される場合(したがって両方のタグを保持する必要があります)、明らかに不要な場合、またはその中間の場合があります。 例えば、同じ情報を持つ contact:phone=* + phone=*は、両方のタグ付けを支持する人を満足させ、どちらかを非推奨にするような支持はありません。 ただし、1つのタグが明らかに標準であり、その重複を削除しても問題ない場合もあります。 例えば、amenity=police + emoji_encoded_tag=:cop:では、2 番目のタグを安全に削除できます。実際に削除すると、OpenStreetMapが改善されます。

プロパティの繰り返し

waterway=riverのような線形の地物の場合、name=*タグはエリアの部分(natural=water + water=riverの部分など)には二重につけないで下さい。ウェイにのみつけます。

これはarea:highway=*highway=*にも同様に適用されます。


関連項目

  • 履歴を保存する - このガイドラインに似ていますが、タグではなく履歴に関するものです。
  • multipolygon リレーション 複雑なエリアを示す方法(よくある事例は、道路によって分割された地物)
  • Relation:site 地物が単一のマルチポリゴンで説明できない場合(例として複数のノードを持つ風力発電所)
  • building:part=* 複雑な建物をタグ付けする方法について