ES:Números de policía

From OpenStreetMap Wiki
(Redirected from ES:Karlsruhe Schema)
Jump to navigation Jump to search


Karlsruhe Schema
Estado: Proposals with undefined or invalid status (inactive)
Propuesta por: MarcusWolschon (and others)
Etiquetado: addr:=*
Se aplica a: nodo vía área relación
Definición: Etiquetado de direcciones
Statistics:

Borrador en: 2008-04-19
Inicio de discusión: 2008-04-21
Inicio de votación: -
Final de votación: -
En la imagen del mapa se aprecia, por un lado, los números de portal asignados individualmente a cada edificio, y por otro, el método utilizado para permitir en un futuro su interpolación, marcando únicamente ciertos números de calle conocidos.

Actualmente el esquema Karlsruhe (nombre dado a la metodología de etiquetado por experimentarse en esta ciudad alemana) es la propuesta más ampliamente utilizada a día de hoy por los colaboradores de OSM para poder georreferenciar números de portales en OpenStreetMap. Este esquema se viene utilizando desde los primeros ensayos de etiquetado de números de policía (también llamados números de portal o de calle) en OpenStreetMap.

El procedimiento se podrá cambiar en cualquier otro momento una vez se haya acumulado la suficiente experiencia en el marcado de números de calles y la interpretación de estos datos en el mapa.

Puedes ver un vídeo (en inglés) de como aplicar este método usando el editor Potlatch.

El editor JOSM posee un menú ya preprogramado que hace que sea más fácil rellenar las etiquetas addr:* de este método. Además existen varios componentes que facilitan la incorporación de direcciones interpoladas así como las correcciones de direcciones postales con errores o incompletas.

Cuestiones previas

Los edificios están georreferenciados próximos a las calles. Como tal están relacionados con el vial a través de su dirección postal pero poseen su propia geolocalización con independencia de aquella.

En lenguaje OSM:

  • Un edificio está, por lo general, representado por un nodo junto (¡no sobre!) a la calle.
  • Deben poder crearse líneas (ways) especiales dibujadas a lo largo de los edificios de manera que permitan interpolar valores entre números de portal. Es decir, el sistema debe asumir que entre los portales 10 y 20 están también el 12, 14, 16, 18 o similar.

Etiquetas

Usamos las siguientes etiquetas:

Etiqueta Requerido Tipo de elemento Valores Descripción
addr:housenumber or

addr:housename

requerido nodo área string El número de casa. Quizás no contenga dígitos. Si una entrada contiene múltiples números de casa, sepárelos por comas. Por ejemplo "12b,12c". O

El nombre de la casa. Este caso es utilizado algunas veces en Inglaterra.

addr:street opcional nodo área string El nombre de la calle con que está relacionado ese número
addr:interpolation requerido vía even/odd/all Forma de interpolar los números de portal: solo pares (even), solo impares (odd), ambos (all)
addr:full opcional nodo área string Dirección postal completa.
addr:postcode opcional nodo área string Código postal de la calle a que pertenece el edificio o la zona.
addr:city opcional nodo área string Núcleo de población que se utiliza en ese edificio para la dirección postal.
addr:country opcional nodo área string La norma ISO 3166-1 alfa-2 del código de país de dos letras en mayúsculas (ver wikipedia:ISO 3166-1 alpha-2). Esto podría ser necesario porque los códigos postales son sólo dentro de un único país. Ejemplo: "DE" para Alemania, "FR" para Francia, "ES" para España. Atención: La norma ISO 3166-1 alfa-2 del código de dos letras para Gran Bretaña es "GB" y no "UK".

Las últimas versiones del editor JOSM poseen un menú ya preprogramado que hace que sea más fácil rellenarlas.

Uso

Edificio individual representado como nodo próximo al vial

NodeNextToRoad.png

<node id="1">
  <tag k="addr:housenumber" v="10" />
</node>

La ubicación sobre la calle se calcula respecto al punto más cercano (se realiza un ajuste o enganche al punto de la línea más cercano al edificio).

Edificio individual representado como polígono

HousePolygonNextToRoad.png

<way id="1">
  <tag k="addr:housenumber" v="10" />
  <tag k="building" v="(yes|apartments|...)" /> 
</way>

Este caso es similar al anterior, únicamente varía en que utilizamos un polígono para representar la casa en vez del punto. En este caso solo se utiliza un punto de referencia del polígono para ajustarlo al punto más cercano de la calle, utilizándose para ello el punto del polígono más próximo a esta.

Muchos edificios a lo largo de una via

HouseNumbersInterpolation.png

Paralelamente a la línea que representa la calle dibujamos n nodos conectados por su propia línea. Esto nos permite usar esta línea para etiquetar los nodos con los números de portales conocidos y el esquema de numeración mediante interpolación que definimos para completar los que desconocemos (par, impar, ambos, etc.)

<node id="01" lat=... lon=...>
  <tag k="addr:housenumber" v="10" /> 
</node>
<node id="02" lat=... lon=...>
  <tag k="addr:housenumber" v="20" /> 
</node>
<node id="03" lat=... lon=...>
  <tag k="addr:housenumber" v="100" /> 
</node>
<way id="??">
  <node ref="01"/>
  <node ref="02"/>
  <node ref="03"/>
  <tag k="addr:interpolation" v="even" />
</node>

Los nodos que no tienen como valor un número entero en su etiqueta addr:housenumber son ignorados en la interpolación. (ej: addr:housenumber=12b).

Realizamos una interpolación a lo largo de la línea entre 2 nodos consecutivos con los números enteros que representan los números de ambos portales.

Los números de calle son etiquetados en un único nodo.

En el caso de que no haya un número de calle concreto (ej: no existe el portal nº 12) se deberá dibujar dos líneas (ej: una que vaya desde los nodos con los números de portal 1 al 11 y otra desde el 13 al 25).

Nosotros esperamos que este particular "método de interpolación" pueda ser implementado en un futuro. A la larga, el mapa de OSM tendrá cartografiada cada casa y etiquetada con su respectivo número de casa, por lo que la interpolación a la larga desaparecerá. No obstante, este método es bueno para poder tener en el mapa de una forma inicial rápida estos números de calles. Además hay que tener en cuenta que existen datos que esperan ser importados a la base de datos de OpenStreetMap que requerirán interpolación.

Sepa que la interpolación es un método muy común para geocodificar direcciones marcando ciertos números de cada calle conocidos y asumiendo que las números de portal entre dos números marcados son equidistantes. Para saber más sobre este método visite el artículo Geocodificación en la Wikipedia.

Intepolación no numérica

Existe un nuevo método de interpolación alfabética, el cual interpola los caracteres presentes en los números de portal. Por ejemplo, 7a - 7f pasa a ser: 7a, 7b , 7c, 7d, 7e

Los nodos con otras partes numéricas en los números de casa son ignorados en la interpolación alfabética.

Métodos para elegir la calle

Caso 1: Selección de la calle que pertenece a un edificio (fácil para humanos)

HousePolygonNextToRoadWName.png

<node id="1" lat=... lon=...>
  <tag k="addr:housenumber" v="10" /> 
  <tag k="addr:street" v="AStreet" /> 
</node>

Solo los viales con la etiqueta "highway" pueden ser consideradas como calles (esta forma no asocia el número de portal con polilíneas que representen una barrera, muro o línea eléctrica por ejemplo).

La manera más apropiada sería además rellenar la clave addr:street=* con el nombre de la calle, de esta manera el software podría relacionar esta con la etiqueta highway=* del vial. No obstante se debe tener en cuenta que errores ortográficos en el valor de algunas de la claves o la utilización de denominaciones abreviadas en algunas de ellas ("Calle del Primero de Mayo" por "C/ 1º de Mayo"), por ejemplo, podría afectar a la precisión de este método.

Caso 2: Relaciones (fácil para ordenadores pero más complicado para los humanos)

Etiquetas

Clave Valor Comentarios
type associatedStreet
name streetname opcional pero recomendado.

Miembros de la relación

Línea o Nodo Rol ¿Recurrencia? Comentarios
vía street uno La calle asociada
nodo vía house uno o más Uno o más números de portal

Los ordenadores pueden comprender fácilmente estas relaciones.

<node id="1" lat=... lon=...>
  <tag k="addr:housenumber" v="10" /> 
</node>
<relation id="??">
  <tag k="type" v="associatedStreet" /> 
  <member type="node" ref="11" role="house" />
  <member type="way" ref="???" role="street" />
</relation>

Sugerencia: Los programas de computador pueden crear relaciones internas entre números de portales a partir del Caso 1 como un paso previo para el tratamiento.

Caso 3: Selección de la calle que pertenece a un edificio representado por un polígono

HousePolygonNextToRoadWRel.png

<node id="11" lat=... lon=...> 
  <tag k="addr:housenumber" v="10" />
  <tag k="addr:street" v="AStreet" /> 
</node>

 ó

<relation id="??">
  <tag k="type" v="associatedStreet" /> 
  <member type="node" ref="11" role="house" />
  <member type="way" ref="???" role="street" />
</relation>

Case 4: Seleccionando la calle que pertenece a cada número de portal

<node id="1" lat=...lon=...>
  <tag k="addr:housenumber" v="10" /> 
  <tag k="addr:street" v="AStreet" /> 
</node>
<node id="2" lat=... lon=...>
  <tag k="addr:housenumber" v="20" /> 
</node>
<node id="3" lat=... lon=...>
  <tag k="addr:housenumber" v="100" /> 
</node>
<way id="11">
  <nref id="1"/>
  <nref id="2"/>
  <nref id="3"/>
  <tag k="addr:interpolation" v="even" />
</way>

 ó

<relation id="??">
  <tag k="type" v="associatedStreet" /> 
  <member type="way" ref="11" role="house" />
  <member type="way" ref="???" role="street" />
</relation>

Dando pistas sobre una dirección compleja (es opcional)

<node id="01" lat=... lon=...>
  <tag k="addr:housenumber" v="10" />
  '''<tag k="addr:postcode" v="832989" />'''
  '''<tag k="addr:full" v="First Street 10
                           832989 My Town
                           France" />'''
</node>

Dando pistas sobre el acceso por carretera (es opcional)

<relation id="??">
  <tag k="type" v="roadAccess">
  <member type="way" ref="11" role="accessto" />
  <member type="node" ref="11" role="accessvia" /> (para múltiples puntos de acceso, por ejemplo centros comerciales o de convenciones)
  <member type="way" ref="???" role="accessfrom" />
</relation>

Accessvia: Puede ser que el nodo de acceso sea un nodo sobre la calle (lo más normal) o un nodo al lado de esta (por ejemplo, una portilla). En este caso, interpolamos la ubicación más cercana a la calle.

Utilización

  • Algunos edificios de las ciudades de Helsinki y Karlsruhe ya están etiquetados de esta manera.
  • Osmarender está parcheado para los números de calle de una forma atractiva: véase los ejemplos para edificios o el método propuesto de interpolación.
  • El programa de routing y navegación Traveling salesman posee la aplicación por línea de comandos org.openstreetmap.osm.data.searching.HouseNumberFinderTest para buscar y obtener la geolocalización de edificios individuales.