Apakah id OSM unik untuk semua jenis objek?

13

Apakah ID OSM unik untuk semua jenis Objek?

Artinya, dapatkah way-ID muncul sebagai ID-relasi atau ID-simpul sebagai ID-jalan?

wutzebaer
sumber

Jawaban:

16

Osm_id unik hanya di dalam tipe objek. Mudah untuk menguji dengan tautan berikut

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

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

Statistik OSM saat ini menunjukkan angka-angka ini:

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

Banyak dari node tertua telah dihapus dan umumnya id node baru jauh lebih besar dari id cara dan relasi baru. Karena itu, semakin jarang menemukan osm_ids yang sama dari ekstrak kecil tetapi itu masih bisa terjadi dan pengguna tidak boleh percaya bahwa osm_ids secara universal unik.

pengguna30184
sumber
Hm tapi sepertinya id ini hanya tersedia sebagai relasi?
wutzebaer
Karena contohnya buruk. Namun demikian ID hanya unik dalam tipe elemen.
scai
ok dari mana kamu tahu itu? saya tidak dapat menemukan contoh apa pun dalam file osm saya atau dokumentasi apa pun tentang hal itu
wutzebaer
2
Saya mengedit jawaban saya dan mengoreksi contoh-contoh untuk menunjukkan case / node case nyata yang ada saat ini dan menjelaskan mengapa kasus-kasus semacam itu agak jarang terjadi pada ekstrak osm kecil. Dokumentasi utamanya adalah skema ruby ​​on rails wiki.openstreetmap.org/wiki/Rails_port/Database_schema
user30184
11

Setiap objek OSM mengikuti skema pengkodean ini secara berurutan.

  1. Jenis objek (node ​​/ cara / relasi)
  2. Indo
  3. Versi objek

jadi jika jenisnya berbeda maka dua atau lebih objek dapat memiliki id yang sama dan mereka akan merujuk ke objek yang berbeda. Tetapi jika jenis dan id sama dan versi berbeda maka itu mewakili versi berbeda dari objek yang sama. Dalam osm api, versi adalah opsional dan jika tidak ditentukan maka versi tertinggi akan dikembalikan.

neogeomat
sumber
6
Mungkin lebih baik untuk mengatakan bahwa objek osm unik dapat diidentifikasi oleh tiga yang pertama. Saya kira tag pengeditan membuat versi baru.
user30184
1
Menambahkan anggota ke cara dan hubungan juga membuat versi baru, tetapi memindahkan node (bahkan membuat garis lurus dari mereka) tidak membuat versi baru untuk jalan tersebut .
AndreJ
2
Ya, mengedit tag membuat versi baru dan bagian itu dilakukan oleh api osm. Sedangkan untuk database, tag juga merupakan bagian dari id unik. Tapi kami hanya menggunakan api, jadi tiga yang pertama akan memberikan objek yang unik.
neogeomat
dapatkah Anda memberi saya contoh di mana id digunakan untuk dua jenis objek sekaligus? Saya tidak dapat menemukan ... Atau adakah dokumentasi tentang hal itu?
wutzebaer
Contohnya diberikan dalam jawaban lain
poshan