Sind die OSM-IDs für alle Objekttypen eindeutig?

13

Sind OSM-IDs für alle Objekttypen eindeutig?

Kann eine Way-ID als Relations-ID oder eine Node-ID als Way-ID vorkommen?

wutzebaer
quelle

Antworten:

16

Osm_id ist nur innerhalb des Objekttyps eindeutig. Es ist einfach, mit den folgenden Links zu testen

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

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

Die aktuellen OSM-Statistiken zeigen diese Zahlen:

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

Viele der ältesten Knoten wurden bereits gelöscht und im Allgemeinen sind neue Knoten-IDs viel größer als neue Weg- und Beziehungs-IDs. Aus diesem Grund ist es immer seltener, dieselben osm_ids aus einem kleinen Auszug zu finden, aber es kann immer noch vorkommen, dass Benutzer nicht darauf vertrauen müssen, dass osm_ids universell einzigartig sind.

user30184
quelle
Hm aber scheint diese id nur als beziehung verfügbar zu sein?
Wutzebaer
Weil die Beispiele schlecht sind. Trotzdem ist die ID nur innerhalb des Elementtyps eindeutig .
Scai
ok woher weißt du das ich konnte weder ein beispiel in meiner osm datei noch irgendeine dokumentation darüber finden
wutzebaer
2
Ich habe meine Antwort überarbeitet und die Beispiele korrigiert, um einen realen Weg- / Knotenfall zu zeigen, der heute existiert, und erklärt, warum solche Fälle in kleinen Osmosextrakten eher ungewöhnlich sind. Die ultimative Dokumentation ist das Ruby on Rails-Schema wiki.openstreetmap.org/wiki/Rails_port/Database_schema
user30184
11

Jedes OSM-Objekt folgt der Reihe nach diesem Kodierungsschema.

  1. Art des Objekts (Knoten / Weg / Beziehung)
  2. Ich würde
  3. Version des Objekts

Wenn der Typ also unterschiedlich ist, können zwei oder mehr Objekte dieselbe ID haben und sie verweisen auf verschiedene Objekte. Wenn jedoch Typ und ID identisch sind und die Version unterschiedlich ist, werden unterschiedliche Versionen desselben Objekts dargestellt. In der osm-API ist die Version optional und wenn nicht angegeben, wird die höchste Version zurückgegeben.

neogeomat
quelle
6
Es ist vielleicht besser zu sagen, dass ein einzigartiges Osmos-Objekt durch die ersten drei identifiziert werden kann. Ich nehme an, dass durch das Bearbeiten von Tags eine neue Version erstellt wird.
user30184
1
Durch das Hinzufügen von Elementen zu Wegen und Beziehungen wird auch eine neue Version erstellt. Durch das Verschieben von Knoten (auch wenn eine gerade Linie daraus erstellt wird) wird jedoch keine neue Version für den Weg erstellt .
AndreJ
2
Ja, beim Bearbeiten von Tags wird eine neue Version erstellt, und dieser Teil wird von der Osm-API ausgeführt. Wie bei der Datenbank sind die Tags auch Teil der eindeutigen ID. Wir verwenden jedoch nur die API, sodass die ersten drei ein eindeutiges Objekt ergeben.
Neogeomat
Können Sie mir ein Beispiel geben, in dem eine ID gleichzeitig für zwei Objekttypen verwendet wird? Ich konnte keine finden ... Oder gibt es eine Dokumentation darüber?
Wutzebaer
Das Beispiel ist in der anderen Antwort angegeben
poshan