Các id OSM có phải là duy nhất trên tất cả các loại Đối tượng không?


13

ID OSM có phải là duy nhất trên tất cả các loại Đối tượng không?

Có nghĩa là, ID cách có thể xảy ra dưới dạng ID quan hệ hoặc ID nút dưới dạng ID cách không?

Câu trả lời:


16

Osm_id là duy nhất trong loại đối tượng. Thật dễ dàng để kiểm tra với các liên kết sau

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

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

Thống kê OSM hiện tại cho thấy những con số này:

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

Toàn bộ các nút cũ nhất đã bị xóa và nhìn chung các id nút mới lớn hơn nhiều so với các id quan hệ và cách thức mới. Do đó, ngày càng hiếm thấy osm_ids giống nhau từ một trích xuất nhỏ nhưng nó vẫn có thể xảy ra và người dùng không được tin rằng osm_ids là duy nhất trên toàn cầu.


Hừm nhưng dường như id này chỉ có sẵn như là quan hệ?
wutzebaer

Bởi vì các ví dụ là xấu. Tuy nhiên, ID chỉ là duy nhất trong loại phần tử.
scai

ok bạn biết điều đó ở đâu? tôi không thể tìm thấy bất kỳ ví dụ nào trong tệp osm của mình cũng như bất kỳ tài liệu nào về nó
wutzebaer

2
Tôi đã chỉnh sửa câu trả lời của mình và sửa các ví dụ để hiển thị trường hợp cách / nút thực sự tồn tại ngày nay và giải thích lý do tại sao các trường hợp như vậy khá hiếm trong các trích xuất osm nhỏ. Tài liệu cuối cùng là lược đồ ruby ​​trên đường ray wiki.openstreetmap.org/wiki/Rails_port/Database_schema
user30184

11

Mỗi đối tượng OSM tuân theo sơ đồ mã hóa này theo thứ tự.

  1. Loại đối tượng (nút / cách / quan hệ)
  2. Tôi
  3. Phiên bản của đối tượng

vì vậy nếu loại khác nhau thì hai hoặc nhiều đối tượng có thể có cùng id và chúng sẽ tham chiếu đến các đối tượng khác nhau. Nhưng nếu loại và id giống nhau và phiên bản khác nhau thì nó đại diện cho các phiên bản khác nhau của cùng một đối tượng. Trong osm api, phiên bản là tùy chọn và nếu không được chỉ định thì phiên bản cao nhất sẽ được trả về.


6
Có thể tốt hơn để nói rằng một đối tượng osm duy nhất có thể được xác định bởi ba đối tượng đầu tiên. Tôi cho rằng các thẻ chỉnh sửa tạo ra một phiên bản mới.
dùng49584

1
Thêm thành viên vào các cách và quan hệ cũng tạo ra một phiên bản mới, nhưng việc di chuyển các nút (thậm chí tạo một đường thẳng của chúng) không tạo ra một phiên bản mới cho cách này .
AndreJ

2
Có, thẻ chỉnh sửa tạo ra một phiên bản mới và phần đó được thực hiện bởi osm api. Đối với cơ sở dữ liệu, các thẻ cũng là một phần của id duy nhất. Nhưng chúng tôi chỉ sử dụng api, vì vậy ba người đầu tiên sẽ cho đối tượng duy nhất.
neogeomat

bạn có thể cho tôi một ví dụ trong đó một id được sử dụng cho hai loại đối tượng cùng một lúc không? Tôi không thể tìm thấy bất kỳ ... Hoặc có bất kỳ tài liệu về nó?
wutzebaer

Ví dụ được đưa ra trong câu trả lời khác
poshan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.