¿Los ID de OSM son únicos para todos los tipos de objetos?

13

¿Los ID de OSM son únicos para todos los tipos de objetos?

Es decir, ¿puede ocurrir una ID de ruta como ID de relación o una ID de nodo como ID de ruta?

wutzebaer
fuente

Respuestas:

16

Osm_id es único solo dentro del tipo de objeto. Es fácil de probar con los siguientes enlaces.

http://www.openstreetmap.org/way/40000000

http://www.openstreetmap.org/node/40000000

Las estadísticas actuales de OSM muestran estos números:

Number of nodes     2412050198
Number of ways      241029453
Number of relations 2658037

Gran parte de los nodos más antiguos ya se han eliminado y, en general, los nuevos identificadores de nodo son mucho más grandes que los nuevos identificadores de forma y relación. Debido a esto, es cada vez más raro encontrar los mismos osm_ids de un pequeño extracto, pero aún así puede suceder y el usuario no debe confiar en que los osm_ids son universalmente únicos.

usuario30184
fuente
Hm pero parece que esta identificación solo está disponible como relación?
wutzebaer
Porque los ejemplos son malos. Sin embargo, la ID es única dentro del tipo de elemento.
scai
ok donde sabes eso? no pude encontrar ningún ejemplo en mi archivo osm ni ninguna documentación al respecto
wutzebaer
2
Edité mi respuesta y corregí los ejemplos para mostrar una forma real / caso de nodo que existe hoy y expliqué por qué tales casos son poco comunes en pequeños extractos de osm. La documentación definitiva es el esquema de ruby ​​on rails wiki.openstreetmap.org/wiki/Rails_port/Database_schema
user30184
11

Cada objeto OSM sigue este esquema de codificación en orden.

  1. Tipo de objeto (nodo / camino / relación)
  2. Carné de identidad
  3. Versión del objeto

así que si el tipo es diferente, entonces dos o más objetos pueden tener la misma identificación y se referirán a diferentes objetos. Pero si el tipo y la identificación son iguales y la versión es diferente, entonces representa diferentes versiones del mismo objeto. En la API de osm, la versión es opcional y, si no se especifica, se devuelve la versión más alta.

neogeomat
fuente
66
Sería mejor decir que los tres primeros pueden identificar un objeto osm único. Supongo que la edición de etiquetas crea una nueva versión.
user30184
1
Agregar miembros a formas y relaciones también crea una nueva versión, pero mover nodos (incluso haciendo una línea recta de ellos) no crea una nueva versión para la forma .
AndreJ
2
Sí, la edición de etiquetas crea una nueva versión y esa parte la realiza la API de osm. En cuanto a la base de datos, las etiquetas también forman parte de una identificación única. Pero solo usamos la API, por lo que los primeros tres darán un objeto único.
neogeomat
¿podría darme un ejemplo en el que se usa una identificación para dos tipos de objetos al mismo tiempo? No pude encontrar ninguno ... ¿O hay alguna documentación al respecto?
wutzebaer
El ejemplo se da en la otra respuesta
poshan