FR:Relation:multipolygon

From OpenStreetMap Wiki
Jump to: navigation, search
Help
Langues disponibles
Deutsch English Español Français Italiano 日本語 Русский
logo multipolygon
One example for multipolygon
Description
La relation multipolygon est utilisée pour représenter les surfaces complexes.
Group
Properties
Members help
Statistics


Les Relations du type multipolygon sont utilisées pour représenter des surfaces complexes.

Les surfaces simples sont cartographiées dans OSM en créant un chemin fermé et en l’étiquetant avec une clef suggérant qu'il s'agit d'une surface plutôt que d'un chemin circulaire. Par exemple, en utilisant l'étiquette landuse=forest, on saura qu'il s'agit d'une surface alors qu'avec l'étiquette junction=roundabout, on saura qu'il s'agît d'un chemin circulaire (un rond point).

Toutefois, ce modèle ne fonctionne que pour les surfaces formées par un unique chemin et qui n'ont pas de trous. Toute surface plus complexe (e.g, parce qu'elle est formée de plusieurs chemins liés ensemble, ou parce qu'elle est formée de plusieurs polygones disjoints ou parce qu'elle comporte des trous) nécessite une relation multipolygon.

Vous pouvez utiliser également l'étiquette type=multipolygon (et non type=boundary) pour les relations sur les frontières administratives si vous souhaitez appliquer les règles sur les surfaces et les bâtiments dans les applications (i.e., connexion des extérieurs pour former des anneaux, exclusion des enclaves, etc.). Une relation de frontière se repère facilement par l'étiquette boundary=* ; il n'est pas besoin d'utiliser type=boundary.

Les relations de type multipolygon sont utilisées pour représenter des surfaces de tout type et de différentes formes. On peut dire que les relations multipolygon sont les objets openstreetmap pour représenter les surfaces.

Pour résumer, une surface représentée à l'aide d'un multipolygon est constituée d'un ou plusieurs chemins formant le ou les polygones extérieurs (outer en anglais) et un ou plusieurs chemins formant le ou les polygones intérieurs (inner).

Contents

Attributs

Clef Valeur Explication
type multipolygon Indique aux applications qui utilisent les données OSM d'employer les règles de construction de surface à partir des membres de la relation.

Membres

Chemin ou nœud Rôle Récurrence? Explication
Way outer un ou plusieurs Les chemins formant les anneaux externes du polygone.
Way inner zéro ou un Les chemins formant les anneaux internes du polygone.
Way aucun Ne pas utiliser, probablement ignoré ou géré comme un chemin extérieur (pour des raisons de compatibilité).

Utilisation

On utilise les polygones multiples de la manière suivante:

Exemples

Un anneau externe et un anneau interne

L'ancienne relation multipolygon ne permettait qu'un seul anneau externe pour un nombre illimité d'anneaux internes. Les anneaux étaient formés par un seul chemin fermé. Ce type de polygone (qui n'est pas vraiment un polygone multiple mais plutôt un polygone multi-chemins) est bien entendu toujours géré mais les règles ont été assouplies de manière à implémenter ce cas dans la relation générale des polygones multiples.
<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: Un anneau externe et un anneau interne

Un anneau externe et deux anneaux internes

<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: Un anneau externe et deux anneaux internes

Chemins multiples formant un anneau

Le modèle de données avancé des polygones multiples permet aux anneaux internes et externes d'être constitués de plus d'un chemin. C'est intéressant pour les polygones multiples qui s'étalent sur des grandes surfaces où il est peu pratique d'avoir un seul chemin qui en fait le tour.:
<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: Chemins multiples formant un anneau

Deux anneaux extérieurs disjoints

A l'inverse de l'ancienne méthode, la relation avancée des polygones multiples permet un nombre infini d'anneaux externes, formant un véritable polygone multiple:
<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: Deux anneaux extérieurs disjoints

Deux anneaux extérieurs disjoints et plusieurs chemins formant un anneau

La possibilité de combiner un anneau depuis plusieurs chemins n'est pas limitée aux anneaux extérieurs, elle s'applique également aux anneaux internes:
<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: Deux anneaux extérieurs disjoints et plusieurs chemins formant un anneau

Combinaison complexe des fonctionnalités avancées

Cette exemple illustre une combinaison complexe des fonctionnalités avancées: trois anneaux externes dont deux qui ont un ou plusieurs anneaux internes et qui sont formés par plus d'un chemin.
<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: Combinaison complexe des fonctionnalités avancées

Une île au milieu d'un trou

Grâce à la possibilité d'avoir plusieurs anneaux externes dans une seule relation, il est possible de créer facilement des "îles" à l'intérieur d'un trou:
<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>

Une telle construction aurait auparavant imposé l'utilisation de plusieurs relations de polygones multiples: une avec le chemin 1 décrit comme extérieur et le chemin 2 comme intérieur, une autre avec le chemin 2 décrit comme externe et le chemin 3 comme interne. Un tel enchaînement est toujours indiqué lorsque "l'île" au milieu est un objet qui n'a rien à voir avec l'extérieur. Elle est alors qualifiée de trou dans un trou.

Figure 7: Une île au milieu d'un trou

Anneaux internes adjacents

Quelques cartographes utilisent la relation "multipolygon" pour combiner des anneaux externes ou internes qui se touchent:
<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>

Les implémentations des polygones multiples devrait essayer de représenter ces objets comme si les anneaux adjacents formaient un seul anneau. C'est l'un des seuls cas où OpenStreetMap dévie du standard des fonctionnalités simplifiées de l'OGC. Dans ce standard, les anneaux internes adjacents ne sont pas gérés car ils ne sont pas utiles. Dans OpenStreetMap, ils sont parfois utiles lorsqu'ils sont étiquetés individuellement, par exemple, une forêt avec une clairière qui est occupée à moitié par un lac et par une parcelle agricole. il faudra bien gérer deux trous dans la forêt, l'un étiqueté avec natural=water et l'autre avec landuse=farmland. C'est un raccourci pertinent: demander aux cartographes de créer un seul trou dans la forêt et de créer ensuite tous les polygones individuels pour le lac et la parcelle agricole prendrait plus de temps..

Figure 8: Anneaux internes adjacents

Des trous dans les trous

Il est possible d'avoir des trous dans les trous d'un polygone multiple (par exemple, une forêt avec une clairière qui comporte un bouquet d'arbres au milieu).
Exemple à trouver.

On peut y parvenir en respectant la spécification des fonctionnalités simplifiées de l'OGC en alternant la création d'anneaux internes et externes. Dans notre exemple, l'extérieur de la forêt et le bouquet d'arbres seront les anneaux extérieurs. La clairière sera l'anneau interne. On peut augmenter la complexité des cas mais il vaut mieux faire simple de manière à ne pas trop embrouiller les autres cartographes.

Ce mode n'est pas forcément géré par tous les moteurs de rendus cartographiques.

Illustration à trouver.

Plus d'exemples

Plus d'exemples sont disponibles sur la page Multipolygon_Examples.

Étiquetage

Étiquetage détaillé

Cette section concerne les développeurs logiciels, les utilisateurs doivent ajouter des étiquettes uniquement à la relation et non aux chemins !

L’étiquetage des relation de polygones multiples peut être réalisé de manière variée. Voici une liste de cas, de problèmes et de leurs solutions:

Rendu

Exemple avec Potlatch

Exemple avec Potlatch

Sous Potlatch, les rôles d'une relation de polygones multiples doivent être assignés à chaque membre de la relation et non comme des étiquettes indépendantes. Dans le mode d'édition, sélectionnez le membre concerné et ajoutez inner ou outer sur la même ligne où est indiqué multipolygon.

Outils d'aide

Voir aussi

Personal tools
Namespaces
Variants
Actions
site
Toolbox