JA:Relation:multipolygon
| |
| Description |
| マルチポリゴンリレーションは複雑なエリアを表すのに使用します。 |
| Group |
| Properties |
| Members help |
| Statistics |
マルチポリゴンタイプのリレーションは複雑なエリアを表すために使われます。
OSMで表現される単純なエリアは、ただの環状のウェイとしてではなく、1つの環状のウェイにタグ付けすることでモデル化することができます。たとえば、『landuse=forest』とタグ付けされた環状のウェイはエリアだと想定されますが、『junction=roundabout』とタグ付けされた環状のウェイでは想定されません。
しかし、このモデルは穴部がない、1本のウェイで輪郭を構成する単純なエリアに有効です。(そのエリアの輪郭がいくつかのウェイを繋いだ構成や、エリアが分断された複数のエリアや穴部が存在する構成といったような)複雑なエリアにはマルチポリゴンリレーションが必要となります。
もしエリアの構築ルール(すなわち、環状に繋がった外郭、飛び地や被飛び地など)を使用して欲しい場合、境界リレーションとしても type=multipolygon ( type=boundary ではなく)を使用することを勧めます。境界リレーションであることは boundary=* タグによって簡単に分かります。: type=boundary を使う必要はありません。
要するに、マルチポリゴンリレーションはロールがouter(外郭線)のウェイと、inner(穴部)のウェイを含むことができ、これらのウェイから何らかの形でマルチポリゴンを構築する有効な環状を形成する必要があります。
Contents |
タグ
| キー
Key |
値
Value |
説明
Explanation |
|---|---|---|
| type | multipolygon | メンバに対してエリアの構築ルールを使用するようアプリケーションに指示します。 |
メンバ
利用法
マルチポリゴンの使用目的は以下のものです:
- マルチポリゴンを表現するタグ(landuse=forest など)はリレーションに指定するべきです。外郭のウェイは自身に適切なタグを記述する場合を除いて、タグを記述する必要はありません。たとえば、森林を4本の道路によって輪郭を書いた場合、この4本のウェイは highway タグを使ってタグ付けしますが、さらに森林リレーションの『outer』メンバーとして使用することもできます。
- 外郭として表した1つの閉じたウェイがあり、そのウェイ自身に適切なタグを記述しない場合、タグのないリレーションに残して外郭に適切なタグを付加することもできます。しかし2つ以上の外郭ウェイがある場合(以下の『詳細なマルチポリゴン』を参照)は意味をなしません。従って、(一貫性のために)常にリレーションにマルチポリゴンのタグを付加することを勧めます。
- もし内側のウェイが自身に何らか表す場合(穴部が湖であるある森林など)、内側のウェイはそのようにタグ付けして構いません。
- それ以外の内側のウェイはタグなしにしてください。
- ウェイの向きは関係ありません。
- リレーションのメンバの順番は関係ありません。(but properly sorted member lists can help human editors to verify completeness)
- 一般的に、マルチポリゴン リレーションは OGC Simple Feature 標準 ( http://www.opengeospatial.org/standards/sfs ) に準拠したマルチポリゴンを構築することができます。この標準に基づく有効なマルチポリゴンないもの(交差リングを使ったポリゴンなど)は、不正なマルチポリゴンと見なされます。ただし、内側の輪が触れているものは重要な例外です(下記参照)。
例
One outer and one inner ring
One outer and two inner rings
<relation id="1"> <tag k="type" v="multipolygon" /> <member type="way" id="1" role="outer" /> <member type="way" id="2" role="inner" /> <member type="way" id="3" role="inner" /> </relation> |
Multiple ways forming a ring
詳細なマルチポリゴンのスキーマは複数のウェイで構成される内側や外側のリングを構成できます。。1本のウェイで全体を取り囲むのが実行不可能な、非常に広範囲のエリアを包括しているマルチポリゴンにとって便利です:
<relation id="1"> <tag k="type" v="multipolygon" /> <member type="way" id="1" role="outer" /> <member type="way" id="2" role="outer" /> <member type="way" id="3" role="inner" /> </relation> |
Two disjunct outer rings
古いスタイルのマルチポリゴンとは異なり、詳細なマルチポリゴンリレーションは任意の数の外郭を含めることができるので、その結果として本当のマルチポリゴンとなります。
<relation id="1"> <tag k="type" v="multipolygon" /> <member type="way" id="1" role="outer" /> <member type="way" id="2" role="outer" /> </relation> |
Complex combination of all advanced features
Island within a hole
1つのリレーションが複数の外郭を持っている可能性から、穴部の範囲内で容易に『島』をモデル化することができるということになります:
<relation id="1"> <tag k="type" v="multipolygon" /> <member type="way" id="1" role="outer" /> <member type="way" id="2" role="inner" /> <member type="way" id="3" role="outer" /> </relation> このような構図は外郭のway 1と内側のway 2を使ったウェイ、および外郭のway 2と内側のWay 3といった、以前は異なったマルチポリゴンリレーションを必要としました。そのような接続は中央にある『島』が外側のエリアとは別のものの時に推奨されますが、『島』がちょうど穴部の中の穴部を同じ要素として作る場合です。 |
Touching inner rings
内側や外側のリングを隣接させるために現在の『マルチポリゴン』リレーションを使う人も居ます:
<relation id="1"> <tag k="type" v="multipolygon" /> <member type="way" id="1" role="outer" /> <member type="way" id="2" role="inner" /> <member type="way" id="3" role="inner" /> </relation> 高度なマルチポリゴンの実装は隣接するリングが実際には1本のリングであるかのようにこれらを表示する必要があります。これはOpenStreetMapの用途がOGCのシンプルで標準的な機能から逸脱したケースです。このシンプルな機能では、隣接した内側のリングは意味がないためサポートされていません。OpenstreetMapでは、個別にタグ付けするなら時に意味をなし、たとえば湖と農場で半分ずつをしめるように開拓された森林という、森林の中に2つの『穴部』があるなら、1本は natural=water として、もう1本は landuse=farmland としてタグ付けしています。これは便利のショートカットで、そうでなければ森の中に1つの穴部を作成し、湖と農地として個々にポリゴンを作るという、多大な手順で作成しなければなりません。 |
穴部の中の穴部(の連続)
マルチポリゴンの穴部の中に穴部を持つことは可能です(開拓された森だが、開拓地の真ん中に木々のある土地など)。
(例は保留中) これはOGCのシンプルな機能の仕様に従い、上記の例では森林の輪郭と木々のある土地は『outer』リングとして、開拓地は『inner』リングというように、外郭と内部のリングを交互に作成することによって実現できます。これは任意の階層まで続けることができますが、他の人の恩恵のためにも複雑にならないようにすることをお勧めします。 穴部の中にに穴部を描いた場合、エディターやレンダラーによってはサポートされていないかもしれません。 |
(保留中) |
More examples
More examples are on the page Multipolygon_Examples.
タグ付け
- エリアを表現するすべてのタグをウェイに対してではなく、リレーションに対して適応することをお勧めします。多くのケースでは全くタグ付けされていないウェイとなるでしょう。
- 互換性のための実装:
- 描画スタイルはそのリレーションのタグ付けから提供されます。
- もしリレーションにタグ付けされていない場合、外郭のウェイの描画スタイルが使われます。
- もし外郭のスタイルに食い違いがあったり、スタイルが見つからない場合はエラーと見なされます。
- 内側のタグ付けは内側の描画に使用されます。もし内側のタグ付けスタイルが外郭と同じスタイル(古い規則)の場合、内側のスタイルはタグがないものとして対処します。
詳細なタグ付け
このマルチポリゴン・リレーションのためのタグ付けはかなり多くの方法で実施することができます。以下はそのケースのリストで、問題点と提案された解決法です:
- 1本以上の外郭ウェイがあるとき:
- リレーションがタグを持っている
- リレーションのタグ付けを使います。ウェイのものは無視します。
- リレーションにタグはないが、1本以上で構成する外郭ウェイが同等のタグのセットを持っている
- 有効のデータとして、タグ付けされたセグメントからタグが提供され、完全な『outer』ウェイとして適応されます。
- リレーションにタグがなく、構成している外郭ウェイは異なったタグ付けがされている
- これは未定義の結果として問題となります。
- 1本以上の内側ウェイがあるとき:
- 1本の閉じられた(1本か複数のセグメントから構成される)ウェイにタグがなく、別のウェイにタグがある
- タグのないウェイは穴部として表示され、タグのあるウェイはそのタグに合わせて表示されます。
- 異なったタグのある個々に閉じられたウェイ
- それぞれの穴部はウェイに付加されたタグに応じて表示されます。
- 異なるタグを持つセグメントによる、1本の閉じられた(2本以上のセグメントで構成された)ウェイ
- 他のセグメントから全くタグを使わないタグのないセグメントの場合。セグメントが異なる性質を持つ場合は定義されていません(『外郭』ウェイのように)。
レンダリング
- JOSM はバージョン1203からこれらの高度なマルチポリゴンを表示できます。
- Osmarender (T@H) は高度なマルチポリゴンをサポートしています。
- www.openstreetmap.org での mapnik の表示設定は『高度なマルチポリゴン』を完全にはサポートしていません(ただし大部分はサポートされています)。
- リビジョン1797からmkgmapによってサポートされています。
- [GpsMid] supports at least a great majority of advanced multipolygon features
- マルチポリゴンの処理のためのAlgorithmが提案されています。
Potlatch の例
Potlatchでは、マルチポリゴンリレーション用のロールは独立したタグとしてではなく、リレーションメンバ自身に割り当てられます。editモード時にリレーションのメンバを選択し、マルチポリゴンを宣言している部分と同じラインのボックス内にinnerかouterかを明示します。
