Os IDs do OSM são únicos em todos os tipos de objetos?


13

Os IDs do OSM são exclusivos em todos os tipos de objetos?

Ou seja, um ID de maneira pode ocorrer como um ID de relação ou um ID de nó como um ID de maneira?

Respostas:


16

Osm_id é exclusivo apenas no tipo de objeto. É fácil testar com os seguintes links

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

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

As estatísticas atuais do OSM mostram estes números:

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

Muitos dos nós mais antigos já foram excluídos e, geralmente, novos IDs de nós são muito maiores que os novos IDs de maneira e relação. Por causa disso, é cada vez mais incomum encontrar os mesmos osm_ids a partir de uma pequena extração, mas isso ainda pode acontecer e o usuário não deve confiar que osm_ids são universalmente únicos.


Hum, mas parece que esse id está disponível apenas como relação?
wutzebaer

Porque os exemplos são ruins. No entanto, o ID é apenas exclusivo dentro do tipo de elemento.
Scal

ok, onde você sabe disso? eu não poderia encontrar nem nenhum exemplo no meu arquivo osm nem qualquer documentação sobre isso
wutzebaer

2
Editei minha resposta e corrigi os exemplos para mostrar uma maneira real / caso de nó que existe hoje e expliquei por que esses casos são bastante incomuns em pequenos extratos de osm. A documentação final é o esquema do ruby ​​on rails wiki.openstreetmap.org/wiki/Rails_port/Database_schema
user30184

11

Todo objeto OSM segue esse esquema de codificação em ordem.

  1. Tipo de objeto (nó / caminho / relação)
  2. Eu iria
  3. Versão do objeto

portanto, se o tipo for diferente, dois ou mais objetos podem ter o mesmo ID e eles se referirão a objetos diferentes. Mas se o tipo e o ID forem iguais e a versão for diferente, ela representará versões diferentes do mesmo objeto. Na osm api, a versão é opcional e, se não for especificada, a versão mais alta será retornada.


6
Talvez seja melhor dizer que um objeto osm exclusivo pode ser identificado pelos três primeiros. Suponho que a edição de tags crie uma nova versão.
user30184

1
Adicionar membros a maneiras e relações também cria uma nova versão, mas mover nós (mesmo fazendo uma linha reta deles) não cria uma nova versão para o caminho .
Andrej

2
Sim, a edição de tags cria uma nova versão e essa parte é feita pela osm api. Quanto ao banco de dados, as tags também fazem parte do ID exclusivo. Mas apenas usamos a API, portanto, os três primeiros fornecerão um objeto único.
Neogeomat

você poderia me dar um exemplo em que um ID é usado para dois tipos de objetos ao mesmo tempo? Não consegui encontrar nenhum ... Ou existe alguma documentação sobre isso?
wutzebaer

O exemplo é dado na outra resposta
poshan
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.