OSM kimlikleri tüm Nesne türleri üzerinde benzersiz mi?


13

OSM kimlikleri tüm Nesne türleri üzerinde benzersiz mi?

Yani, bir yol kimliği bir ilişki kimliği olarak veya bir düğüm kimliği yol kimliği olarak ortaya çıkabilir mi?

Yanıtlar:


16

Osm_id yalnızca nesne türü içinde benzersizdir. Aşağıdaki bağlantılarla test etmek kolaydır

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

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

Mevcut OSM istatistikleri şu sayıları gösterir:

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

En eski düğümlerin tamamı zaten silinmiştir ve genellikle yeni düğüm kimlikleri yeni yol ve ilişki kimlikleriyle karşılaştırıldığında çok daha büyüktür. Bu nedenle, küçük bir ekstrakttan aynı osm_id'leri bulmak giderek daha nadir görülür, ancak yine de olabilir ve kullanıcı osm_idlerin evrensel olarak benzersiz olduğuna güvenmemelidir.


Hm ama bu kimlik sadece ilişki olarak kullanılabilir mi?
wutzebaer

Çünkü örnekler kötü. Bununla birlikte, kimlik öğe türü içinde benzersizdir .
scai

tamam bunu nereden biliyorsun ne osm dosyama ne de onunla ilgili herhangi bir belge
bulamadım

2
Cevabımı düzenledim ve bugün var olan gerçek bir yol / düğüm vakasını göstermek için örnekleri düzelttim ve bu tür vakaların küçük ozm özütlerinde neden nadir olduğunu açıkladım. Nihai belgeler raylar üzerinde yakut şeması wiki.openstreetmap.org/wiki/Rails_port/Database_schema
user30184 29:14

11

Her OSM nesnesi sırayla bu kodlama şemasını izler.

  1. Nesne türü (düğüm / yol / ilişki)
  2. İD
  3. Nesnenin sürümü

böylece tür farklıysa, iki veya daha fazla nesne aynı kimliğe sahip olabilir ve farklı nesnelere atıfta bulunacaktır. Ancak, tür ve kimlik aynı ve sürüm farklıysa, aynı nesnenin farklı sürümlerini temsil eder. Osm api'de sürüm isteğe bağlıdır ve belirtilmezse en yüksek sürüm döndürülür.


6
İlk üçü ile benzersiz bir osm nesnesinin tanımlanabileceğini söylemek daha iyi olabilir. Etiketleri düzenlemenin yeni bir sürüm oluşturduğunu düşünüyorum.
user30184

1
Ayrıca yeni bir sürümünü oluşturur yollar ve ilişkilere üye ekleme, ama yok (hatta bunların düz bir çizgi yapma) düğümleri hareketli olmayan için yeni bir sürümünü oluşturmak şekilde .
AndreJ

2
Evet, etiketleri düzenlemek yeni bir sürüm oluşturur ve bu bölüm osm api tarafından yapılır. Veritabanı gelince, etiketler de benzersiz kimliğin bir parçasıdır. Ama sadece api'yi kullanıyoruz, bu yüzden ilk üçü benzersiz bir nesne verecek.
neogeomat

bir kimliğin aynı anda iki nesne türü için kullanıldığı bir örnek verebilir misiniz? Hiç bulamadım ... Yoksa bununla ilgili herhangi bir belge var mı?
wutzebaer

Örnek diğer cevapta verilmiştir
poshan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.