ES:Relation:multipolygon

From OpenStreetMap Wiki
Jump to: navigation, search
Help
Available languages
Deutsch English Español Français Italiano 日本語 Русский
logo multipolygon
One example for multipolygon
Description
This relation is used to represent areas with holes.
Group
Properties
Members help
  • Way - outer
  • Way - inner
Statistics


Las relaciones del tipo multipolígono se usan para representar áreas de todo tipo. La relación multipolígono es el tipo de datos que usa OpenStreetMap para las áreas. Por facilidad a la hora de dibujar, las áreas también se pueden crear con una vía circular etiquetada de forma que se indique que es un área y no una vía en forma de círculo (por ejamplo, una vía circular con la etiqueta landuse=forest será interpretada como un área, pero no lo será si lleva la etiqueta junction=roundabout). Sin embargo, estos atajos sólo funcionan para áreas simples cuyo perímetro consista en una sola vía y en la que no haya huecos.

Cualquier área que sea algo más compleja (i.e., porque su contorno conste de varias vías unidas, o porque consista en varias partes separadas, o porque tenga huecos) requiere una relación multipolígono.

En resumen, una relación multipolígono puede constar de cualquier número de vías en función outer (el contorno) y cualquier número de vías en el función inner (los huecos), y todas deben formar, de algún modo, lineas cerradas que constituyan la forma del multipolígono.

Contents

Etiquetas

Clave Valor Explicación
type multipolygon Indica a las aplicaciones que deben aplicar a los miembros de la relación reglas para crear áreas. Es recomendable usar también type=multipolygon (y no type=boundary) para las relaciones boundary si quieres que las aplicaciones usen las citadas reglas (i.e., conectar outers para formar anillos, excluir enclaves, etc.) Una relación boundary se reconoce fácilmente por su etiqueta boundary=*; no es necesario usar type=boundary.

Miembros

Vía o nodo Función ¿Recurrencia? Explicación
Way outer uno o más Las vías que forman el o los límites exteriores del área.
Way inner ninguno o más Las vías que forman el o los límites interiores del área.
Way ninguno Si no se especifica un función, el software que procese la relación tendrá que adivinarlo (ver #Uso más abajo)

Uso

Algunas directrices para usar las relaciones multipolígono:


Ejemplos

Aquí tenemos algunos ejemplos de polígonos complejos que se pueden crear con la relación multipolígono.

Un anillo interior y otro exterior

La vieja y muy usada relación multipolígono sólo permitía un anillo exterior y cualquier número de ainllos interiores; los anillos debían consistir en una única vía cerrada. Por supuesto, este tipo de polígono (que no es "multipolígono", sino, más bien, una "multivía") todavía está soportado, pero las reglas se han relajado para que sea simplemente un caso especial de la relación multipolígono.
<relation id="1">
  <tag k="type" v="multipolygon" />
  <member type="way" id="1" role="outer" />
  <member type="way" id="2" role="inner" />
</relation>
fig. 1

Un anillo exterior y dos interiores

<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>
fig. 2

Múltiples vías formando un anillo

El esquema de multipolígonos avanzados permite que cualquier anillo, interior o exterior, conste de más de una vía. Esto es útil para multipolígonos que abarquen áreas muy grandes, que no sería práctico rodear con una sola vía:
<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>
fig. 3

Más de un anillo exterior (anillos separados)

A diferencia de lo que ocurría antes, las relaciones de multipolígonos avanzados también permiten cualquier número de anillos exteriores (lo que constituye un verdadero multipolígono):
<relation id="1">
  <tag k="type" v="multipolygon" />
  <member type="way" id="1" role="outer" />
  <member type="way" id="2" role="outer" />
</relation>
fig. 4

Más de un anillo exterior (anillos separados) y múltiples vías formando un anillo

La capacidad de formar un anillo a partir de vías individuales no se limita a los anillos exteriores, sino que puede usarse también con los interiores:
<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>
fig. 5

Combinaciones complejas de todas las características avanzadas

Este ejemplo muestra una combinación compleja de todas las características avanzadas; una figura con tres anillos exteriores, dos de los cuales tienen uno o más anillos interiores, constando varios de ellos de más de una vía.
<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>
fig. 6

Islas dentro de un hueco

De esta posibilidad de tener varios anillos exteriores, se desprende que se puedan modelar fácilmente "islas" dentro de un hueco:
<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>

Antes, una construcción como ésta hubiera requerido diferentes relaciones multipolígono, una con la vía 1 en la función de "outer" y la 2 en el de "inner", así como otra con la vía 2 como "outer" y la 3 como "inner". Este proceso aún se recomienda en el caso de que la "isla" del medio sea una cosa diferente del área delimitada por las vías 1 y 2; pero, si la "isla" es lo mismo que la referida área, puede dejarse como un "hueco" dentro del "hueco" formado por la vía 2.

fig. 7

Anillos interiores en contacto

Algunas personas usan la actual relación "multipolígono" para combinar anillos interiores o exteriores que están en contacto:
<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>

Una implementación de multipolígonos avanzados debería tratar de renderizarlos como si los anillos en contacto fuesen, de hecho, un sólo anillo. Este es el único caso en el que OSM se aparta del estándar OGC Simple Features. En Simple Features, los anillos interiores en contacto no están soportados, porque son innecesarios. En OpenStreetMap, a veces tienen sentido si se etiquetan individualmente. Por ejemplo, si tenemos un bosque con un claro y éste está ocupado a medias por un lago y una granja, tenemos dos "agujeros en el bosque, uno etiquetado como natural=water y otro, como landuse=farmland. Este sistema es muy conveniente, porque crear un solo hueco en el bosque y, después, polígonos individuales para el lago y la granja supondría más trabajo para quienes dibujan.

fig. 8

Huecos en los huecos de los huecos...

Es posible tener huecos en los huecos de un multipolígono (imagina: Un claro en un bosque y una zona de árboles en medio del claro).
Ejemplo pendiente.

Esto se logra, de acuerdo con las especificaciones del OGC Simple Features, creando, alternativamente, anillos interiores y exteriores; en nuestro ejemplo, el límite externo del bosque y la zona arbolada serían "outer", mientras que el claro sería "inner". Esto puede repetirse indefinidamente, pero se sugiere, en beneficio del resto de contribuyentes, que se mantenga el nivel de complejidad lo más bajo posible.

Además, los huecos en los huecos de los huecos pueden no estar soportados por todos los editores y/o renderizadores.

Ilustración pendiente.

Ejemplos

Para ejemplos ver este artículo: ES:Multipolygon_Examples

Etiquetado

Etiquetado detallado

El etiquetado de esta relación multipolígono puede hacerse de varias formas. Aquí tenemos una lista de casos, problemas y posibles soluciones:

Renderizado

Ejemplo tomado de Potlatch

Ejemplo usando Potlatch

En Potlatch, los funciones de una relación multipolígono deben ser asignados a los propios miembros de la relación y no como etiquetas separadas. Estando en el modo de edición, selecciona el miembro de la relación y pon inner o outer en el cajetín que aparece en la misma línea en la que figura la expresión multipolygon.

Guía Paso-a-Paso

En construccion...

Dos polígonos que comparten un lado

Uno de los ejemplos más sencillos de multipolígono: dos polígonos que comparten un lado. En este caso se trata de crear dos edificios unidos. En la siguiente imagen se pueden ver varios ejemplos en la ciudad de Salamanca.

fig.1 Numerosos edificios contiguos (Salamanca)
  1. Creamos el primero de los edificios. NO lo etiquetamos.
    fig.2 Primera captura de pantalla
  2. Cortamos el segmento del polígono que va a compartir con el otro edificio.
    fig.3 Segunda captura de pantalla
  3. Creamos el segundo de los edificios. NO lo etiquetamos.
    fig.4 Tercera captura de pantalla
  4. Creamos una nueva relacion para generar el primero de los multipolígonos. Para ello, pulsamos el icono rodeado con la elipse roja; se abrirá la ventana que se ve en la parte inferior derecha de la imagen.
    fig.5 Cuarta captura de pantalla
  5. Seleccionamos los dos segmentos (el compartido y el correspondiente a uno de los edificios) y los añadimos a la relación. Para ello, pulsamos en el icono rodeado con el círculo rojo tras realizar la selección.
    fig.6 Quinta captura de pantalla
  6. Ponemos ambos segmentos de la relación como outer (apartado Función; círculo rojo), y añadimos las etiquetas (elipse azul): type=multipolygon y building=yes. Pulsamos Aceptar.
    fig.7 Sexta captura de pantalla
  7. Seleccionamos el segmento compartido y el correspondiente al otro edificio, y procedemos de la misma manera (pasos 4º a 6º) que con el multipolígono anterior. Ya tendremos creados dos multipolígonos que comparten un lado.
    fig.7 Séptima captura de pantalla

Herramientas de ayuda

Personal tools
Namespaces
Variants
Actions
site
Toolbox