JA:Relation:multipolygon

From OpenStreetMap Wiki
(Redirected from JA:Tag:type=multipolygon)
Jump to: navigation, search
利用できる言語 — Relation:multipolygon
· Afrikaans · Alemannisch · aragonés · asturianu · azərbaycanca · Bahasa Indonesia · Bahasa Melayu · Bân-lâm-gú · Basa Jawa · Basa Sunda · Baso Minangkabau · bosanski · brezhoneg · català · čeština · corsu · dansk · Deutsch · eesti · English · español · Esperanto · estremeñu · euskara · français · Frysk · Gaeilge · Gàidhlig · galego · Hausa · hrvatski · Igbo · interlingua · Interlingue · isiXhosa · isiZulu · íslenska · italiano · Kiswahili · Kreyòl ayisyen · kréyòl gwadloupéyen · Kurdî · latviešu · Lëtzebuergesch · lietuvių · magyar · Malagasy · Malti · Nederlands · Nedersaksies · norsk bokmål · norsk nynorsk · occitan · Oromoo · oʻzbekcha/ўзбекча · Plattdüütsch · polski · português · română · shqip · slovenčina · slovenščina · Soomaaliga · suomi · svenska · Tagalog · Tiếng Việt · Türkçe · Vahcuengh · vèneto · Wolof · Yorùbá · Zazaki · српски / srpski · беларуская · български · қазақша · македонски · монгол · русский · тоҷикӣ · українська · Ελληνικά · Հայերեն · ქართული · नेपाली · मराठी · हिन्दी · भोजपुरी · অসমীয়া · বাংলা · ਪੰਜਾਬੀ · ગુજરાતી · ଓଡ଼ିଆ · தமிழ் · తెలుగు · ಕನ್ನಡ · മലയാളം · සිංහල · བོད་ཡིག · ไทย · မြန်မာဘာသာ · ລາວ · ភាសាខ្មែរ · ⵜⴰⵎⴰⵣⵉⵖⵜ ⵜⴰⵏⴰⵡⴰⵢⵜ‎ · አማርኛ · 한국어 · 日本語 · 中文(简体)‎ · 中文(繁體)‎ · 吴语 · 粵語 · ייִדיש · עברית · اردو · العربية · پښتو · سنڌي · فارسی · ދިވެހިބަސް
その他の言語このウィキの翻訳を支援してください
Public-images-osm logo.svg multipolygon
Multipolygon Illustration 6.svg
説明
マルチポリゴンリレーションは複雑なエリアを表すのに使用します。
グループ: 属性
メンバー

  • ウェイ - outer
  • ウェイ - inner
ウィキデータ
Wikidata-logo.svgSearch Wikidata日本語の翻訳にご協力ください!
状態:承認

マルチポリゴンタイプのリレーションは、複雑なエリアを表すために使われます。

単純なエリアは、1本の環状のウェイを作成し、環状のウェイではなくエリアとして意味を持つものでタグ付けすることで、 OSM にマッピングされます。例えば、 landuse=forest でタグ付けされた環状のウェイはエリアと想定されますが、 junction=roundabout とタグ付けされた環状のウェイはそうなりません。

しかし、このモデルは穴がない、1本のウェイで輪郭を構成する単純なエリアにのみ有効です。それより複雑な(複数のウェイを接続して輪郭が構成されていたり、エリアが不連続の複数のエリアから構成されていたり、穴があったりするような)エリアには、マルチポリゴンリレーションが必要となります。

つまり、マルチポリゴンリレーションは outer ロールのウェイ(外郭線)と、inner ロールのウェイ(穴部)を含むことができ、マルチポリゴンを形成するためには、有効な環状をした何らかの形でなければなりません。

ドイツを中心に、境界リレーションとして type=boundary の代わりに type=multipolygon が使われていることもあります。この方法は広く受け入れられておらず、非推奨と考えてください。

タグ

キー 説明
type multipolygon メンバに対してエリアの構築ルールを使用するようアプリケーションに指示します。
... ... マルチポリゴンを説明するあらゆるタグ(name=*, landuse=*, ...)

メンバー

ウェイかノード ロール 出現回数 説明
ウェイ outer 1本以上 エリアの外郭を表したウェイ
ウェイ inner 0本以上 エリアの内側を表したウェイ
ウェイ なし 使用しないでください。非推奨です。ツールは outer として扱うかもしれません。

利用法

マルチポリゴンの推奨される利用方法は以下の通りです。

  • マルチポリゴンについて記述するタグ(landuse=forest など)は、リレーションに設定してください。外郭のウェイは、それ自身について記述するものがない限り、タグ付けせずにおいてください。例えば、四方をフェンスによって区切られた森林で、4本のウェイが barrier タグでタグ付けされている場合であっても、さらに森林リレーションの "outer" メンバーとして使用することができます。
  • 外郭として表した1つの閉じたウェイがあり、そのウェイ自身に適切なタグを記述しない場合、タグのないリレーションに残して外郭に適切なタグを付加することもできます。しかし2つ以上の外郭ウェイがある場合(以下の『詳細なマルチポリゴン』を参照)は意味をなしません。(一貫性のために)常にリレーションにマルチポリゴンのタグを付加することを勧めます。
  • もし内側のウェイが自身に何らか表す場合(例えば、森林に穴部があり、穴部が湖である場合など)、内側のウェイはそのようにタグ付けして構いません
  • それ以外の内側のウェイはタグなしにしてください。
  • ウェイの向きは関係ありません
  • リレーションのメンバーの順番は関係ありません(が、一覧を正しく並べ替えておくと、人間がエディタで完全性を検証するのに役立ちます)。

Valid Multipolygon conditions

Generally, the multipolygon relation can be used to build multipolygons in compliance with the OGC Simple Feature standard (Graphical examples of OGC validity). Anything that is not a valid multipolygon according to this standard (e.g., polygons with intersecting rings) should also be considered an invalid multipolygon relation, with the notable exception of touching inner rings (see below).

We define a valid (closed) polygon as the combination of a subset of member ways which, when their endpoints are joined, form a closed polygon.

We define an unclosed way as a combination of nodes in which the first node is different than the last node.

The conditions to form a valid multipolygon relation are the following:

  • Member ways of a multipolygon relation MUST form one or more closed polygon(s). When the ways belonging to the relation are combined they must form one or more closed chains. [[1]]
  • Exactly two unclosed ways, and no more should share an endpoint (e.g. the most extreme nodes of a way represented by the black dot in the images).
    • If an endpoint is shared by less than two unclosed ways, the polygon can't be closed and is ill formed. invalid example 1
    • If an endpoint is shared by more than two unclosed ways, it's ill formed and a closed polygon can't be reconstructed unambiguously. invalid example 2 (Exception - points shared by an even number of unclosed ways might be part of touching inner rings which is ok.)
  • Inner polygons must not overlap with outer polygons or touch them. Overlapping can be avoided completely by reshaping.

One outer and one inner ring

The simplest and most often used case is one outer ring and one (or more) inner rings consisting of single closed ways.
<relation id="1">
  <tag k="type" v="multipolygon" />
  <member type="way" id="1" role="outer" />
  <member type="way" id="2" role="inner" />
</relation>
Figure 1: 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>
Figure 2: One outer and two inner rings

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>
Figure 3: Multiple ways forming a ring

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>
Figure 4: Two disjunct outer rings

Two disjunct outer rings and multiple ways forming a ring

The ability to combine a ring from individual ways is not limited to outer rings, it can also be used for 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" />
  <member type="way" id="4" role="outer" />
  <member type="way" id="5" role="inner" />
</relation>
Figure 5: Two disjunct outer rings and multiple ways forming a ring

Complex combination of all advanced features

この例はすべての詳細な特徴の複雑な組み合わせと、3本の外郭を使った図で、そのうちの2本は1本以上の内側のリングを持ち、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="outer" />
  <member type="way" id="4" role="outer" />
  <member type="way" id="5" role="inner" />
  <member type="way" id="6" role="inner" />
  <member type="way" id="7" role="inner" />
  <member type="way" id="8" role="inner" />
  <member type="way" id="9" role="inner" />
  <member type="way" id="10" role="inner" />
  <member type="way" id="11" role="inner" />
  <member type="way" id="12" role="outer" />
  <member type="way" id="13" role="outer" />
  <member type="way" id="14" role="outer" />
  <member type="way" id="15" role="outer" />
  <member type="way" id="16" role="inner" />
  <member type="way" id="17" role="inner" />
  <member type="way" id="18" role="inner" />
  <member type="way" id="19" role="inner" />
  <member type="way" id="20" role="outer" />
</relation>
Figure 6: 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 といった、以前は異なったマルチポリゴンリレーションを必要としました。そのような接続は中央にある『島』が外側のエリアとは別のものの時に推奨されますが、『島』がちょうど穴部の中の穴部を同じ要素として作る場合です。

Figure 7: Island within a hole

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つの穴部を作成し、湖と農地として個々にポリゴンを作らなければなりません。手順を節約しましょう。

Avoid building multipolygons where an inner ring touches an outer ring though.

この説についての議論が、英語版の議論ページにあります。

Figure 8: Touching inner rings

Invalid examples

Some examples of invalid multipolygon relations to illustrate what should NOT be done

Unclosed polygons

This is an example of an invalid multipolygon as way #2 and way #3 are not connected.
Figure 9: invalid Unclosed polygon

Overlapping, unclosed member ways belonging to the same role

This is an example of an invalid multipolygon as way #2 and way #3 endpoints share more than two ways.
Figure 9: invalid ambiguous multipolygon relation

More examples

タグ付け

  • エリアを表現するすべてのタグをウェイに対してではなく、リレーションに対して適用することをお勧めします。多くの場合、完全にタグがないウェイの結果になるでしょう。
  • 互換性のための実装:
    • 描画スタイルはそのリレーションのタグ付けから提供されます。
    • もしリレーションにタグ付けされていない場合、外郭のウェイの描画スタイルが使われます。
    • もし外郭のスタイルに食い違いがあったり、スタイルが見つからない場合はエラーと見なされます。
    • 内側のタグ付けは内側の描画に使用されます。

詳細なタグ付け

この節はソフトウェア開発者向けであり、ユーザーはタグを常に外郭のウェイではなくリレーションに追加してください。

このマルチポリゴンリレーションのタグ付けは、何通りかの方法で行われます。以下に場合と、問題と、提案する解決策を示します。

  • 1本以上の outer ウェイがある場合:
    リレーションにタグがある場合
    リレーションのタグを使います。ウェイのものはすべて無視します。
    リレーションにタグがないが、1本以上の outer ウェイが同じタグの組み合わせを持っている場合
    有効なデータであり、タグ付けされた区間からタグを取得し、すべての outer ウェイに適用します。
    リレーションにタグがなく、構成する outer ウェイのタグ付けが異なっている
    問題となる場合で、未定義の結果になります。
  • 1本以上の inner ウェイがある場合:
    (1本以上のウェイから構成された)輪にタグがなく、他の輪にタグがある場合
    タグがない輪は穴としてレンダリングされ、タグがある輪はそのタグに基づいてレンダリングされます。
    別々な閉じたウェイに、別々なタグがある場合
    それぞれの穴部はウェイに付加されたタグに応じて表示されます。
    (2本以上のウェイで構成された)1本の輪に、ウェイによって異なるタグが設定されている場合
    一部のウェイにまったくタグがないのであれば、他のウェイからタグを使用してください。ウェイ同士でタグが異なる場合は、ふるまいは未定義です("outer" のウェイト同じ)。

レンダリング

  • JOSM はバージョン1203からこれらの高度なマルチポリゴンを表示できます。
  • Layers on the OSM website - depends on use of the osm2pgsql "--multi-geometry" flag, which varies by layer. For more information see this blog entry by Paul Norman [2] and this openstreetmap-carto github issue [3]
  • リビジョン1797からmkgmapによってサポートされています。
  • GpsMid supports at least a great majority of advanced multipolygon features
  • マルチポリゴンの処理のための Algorithm が提案されています。

Mapping Style, best practice

Multipolygons open up the possibility to create geometrically identical objects in different styles: as ways or as multipolygons, using closed or open ways, or with shared or unshared ways.

This raises the question of which mapping style to use. Some styles have advantages over others, and should be regarded as good practice. For others, the choice is more of a matter of preference, or whether one is an experienced or an inexperienced mapper.

Most generally when large areas share the same tag, they can be represented either by a large number of small multipolygons or closed ways, or by a smaller number of large multipolygons. For multipolygons themselves, two possible mapping styles are:

Method A
Inner and outer rings are created from closed ways whenever possible, except when these ways become very large (on the order of 2000 nodes). Ways are usually not shared by different multipolygons
Method B
Every border between two multipolygons is represented by a unique way which is then shared by the adjacent multipolygons. Consequently the multipolygon rings are often composed of several open ways


The question of best practice for multipolygons has been discussed intensively over the years, see Talk:Relation:multipolygon and the forums. A final consensus hasn't emerged yet, but the following observations apply:

  • Mapping simple closed areas as multipolygons instead of ways increases the number of database objects and increases rendering time. This additional overhead of complexity should be avoided.
  • Sharing way segments between multipolygons (method B) offers a representational efficiency by avoiding redundant representations of overlapping ways.
  • Multipolygons consisting of non-closed ways (method B) are harder to handle by inexperienced users, and simple editors such as Potlatch 2. This has often led to the accidental destruction of such multipolygons by unsuspecting users.
  • Many experienced users have expressed their discomfort with method B, especially when the multipolygons are very large.
  • Huge multipolygons cause a slowdown of the rendering process.
  • Editing complex geometries in JOSM is easier, faster and less error-prone with method A. This is because method B requires deletion, creation and insertion of several way segments into the correct multipolygon relations.

So far there are no official restrictions on how to use multipolygons as long as they are geometrically valid. However adopting a considerate mapping style will help to keep the database clean and keep editing easy for every user.

Potlatch 2 example

Here's a grassy area within some woodland:
Potlatch 2 Multipolygon example - before

Click on the outer way:
Potlatch 2 Multipolygon example - after clicking on outer

Control-Click on the inner way:
Potlatch 2 Multipolygon example - after control-clicking on inner

Note how a "doughnut" icon has now appeared in the toolbox:
Potlatch 2 Multipolygon example - doughnut icon appears

Click it:
Potlatch 2 Multipolygon example - click doughnut

To see the actual tags that have been added, click advanced:
Potlatch 2 Multipolygon example - click advanced

The multipolygon has been created:
Potlatch 2 Multipolygon example - multipolygon

援助ツール

See also