OSM ID는 모든 객체 유형에서 고유합니까?


13

OSM ID는 모든 객체 유형에서 고유합니까?

의미, 웨이 ID가 관계 ID로 또는 노드 ID로 웨이 ID로 발생할 수 있습니까?

답변:


16

Osm_id는 객체 유형 내에서만 고유합니다. 다음 링크로 테스트하기 쉽습니다.

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

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

현재 OSM 통계는 다음 숫자를 보여줍니다.

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

가장 오래된 노드는 모두 이미 삭제되었으며 일반적으로 새 노드 ID는 새로운 방식 및 관계 ID보다 훨씬 큽니다. 이 때문에 작은 추출에서 동일한 osm_id를 찾는 것이 점점 더 드문 일이지만 여전히 발생할 수 있으며 사용자는 osm_id가 보편적으로 고유하다는 것을 신뢰해서는 안됩니다.


흠 그러나이 ID는 관계로만 사용할 수있는 것 같습니다.
wutzebaer 2018 년

예제가 나쁘기 때문입니다. 그럼에도 불구하고 ID는 요소 유형 에서 고유 합니다.
scai

알았어 어디 알지? 나는 osm 파일에서 어떤 예제도 찾을 수없고 그것에 관한 문서도 찾을 수 없었다
wutzebaer

2
나는 내 대답을 편집하고 오늘 존재하는 실제 방법 / 노드 사례를 보여주기 위해 예제를 수정하고 왜 그런 사례가 작은 osm 추출에서 드문 지 설명했습니다. 최고의 문서는 루비 온 레일즈 스키마입니다. wiki.openstreetmap.org/wiki/Rails_port/Database_schema
user30184

11

모든 OSM 객체는이 코딩 체계를 순서대로 따릅니다.

  1. 객체 유형 (노드 / 웨이 / 관계)
  2. 신분증
  3. 객체의 버전

따라서 유형이 다르면 둘 이상의 객체가 동일한 ID를 가질 수 있으며 다른 객체를 참조합니다. 그러나 유형과 ID가 동일하고 버전이 다르면 동일한 객체의 다른 버전을 나타냅니다. osm api에서 version은 선택 사항이며 지정하지 않으면 가장 높은 버전이 반환됩니다.


6
첫 번째 세 개로 고유 한 osm 개체를 식별 할 수 있다고 말하는 것이 좋습니다. 태그를 편집하면 새 버전이 만들어집니다.
user30184

1
또한 새 버전을 생성 방식과 관계에 구성원을 추가하지만, 않습니다 (심지어의 직선을) 노드를 이동 하지 의 새 버전 생성 방법 .
AndreJ

2
예, 태그를 편집하면 새 버전이 생성되고 해당 부분은 osm api에서 수행됩니다. 데이터베이스의 경우 태그는 고유 ID의 일부입니다. 그러나 우리는 api 만 사용하므로 처음 세 개는 고유 한 객체를 제공합니다.
neogeomat

두 객체 유형에 ID가 동시에 사용되는 예를 알려주시겠습니까? 찾을 수 없습니다 ... 또는 관련 문서가 있습니까?
wutzebaer 2016 년

예는 다른 답변에 있습니다
poshan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.