2014-02-07 2 views
0

먼저, 제 3 자 파서 또는 기존 라이브러리를 찾고 있지 않습니다. 또한 StackOverflow에 관련된 OSM 관련 질문을 모두 읽었으며 대답을 보지 못했습니다.OpenStreetMap 관계 ID가 거의 없음

OpenStreetMap 데이터를 렌더링 및 라우팅을위한 실행 가능한 구조로 파싱하려고하는데이 문제에 대해 빠른 질문이 있습니다. 이를 위해 나는 주요 도시 중심부의 아주 작은 부분을 수출하여 유용한 구조로 파싱했습니다.

관계-XML은 다음과 같습니다

<relation id="31249" visible="true" version="100" changeset="13180178" timestamp="2012-09-20T08:12:17Z" user="Skywave" uid="10927"> 
<member type="way" ref="22375740" role=""/> 
<member type="way" ref="39271187" role=""/> 
<member type="way" ref="39271189" role=""/> 
<member type="way" ref="39271191" role=""/> 
</relation> 

등등

그러나이 REF-ID를 종종 XML에 존재하지 않습니다. 이상적으로 그들은 다른 노드, 또 다른 관계를 가리킬 것입니다. 그러나 종종 그들은이 한 라인에서만 발생합니다. 이것은 본질적으로 가치없는 정보라는 것을 의미합니다. 맞습니까?

OSM에 알려진 모든 정보가 포함되어 있다고 의심되는데 정보가지도 영역 외부에있을 경우 관계에 대한 참조가 계속 포함되지만 참조되는 실제 개체는 내 보내지 않아서 정리할 수 있습니다. ? ... OSM 웹 사이트에이를 찾기 위해 시도

.. :-) 등의 API에서

+0

실제 질문은 무엇입니까? 신분증은 쓸데 없는데? _Why_ 그들이 중요하다면? 당신이 그들과 겪고있는 _actual_ 문제는 무엇입니까? 또한 XSLT에 대한 참조가 표시되지 않으므로 태그가 필요하지 않습니다. 어떤 경우에 빠뜨린 것이 아니라면 질문을 편집해야합니다. –

+0

기존 솔루션이 작동하지 않는다고 게시했습니다. http://wiki.openstreetmap.org/wiki/Frameworks 왜 스스로 왜 OSM XML 파서를 개발하는 데 시간을 할애합니까? – MaM

+0

열린 해결책이 나를 위해 일하지 않는다고 언급하지 않았고, 나는 하나를 찾지 않는다고 언급했다. 쓸데없는 ID는 파일을 정리하고 싶기 때문에 중요합니다. 올바른 가정 이었는지 다시 확인하고 싶습니다. – Yasper

답변

3

OSM 추출물의 관계에 연결되어있는 모든 요소를 ​​포함하지 않는 없습니다. 여기에는 추출물의 테두리 상자를 터치하는 모든 지리적 객체 (노드, 방법)가 포함됩니다. 그러나 관계에있어서 그것은 최악의 경우 다르게 (다른 관계 나 여러 관계에 존재하는 거대한 방식으로 연결되는) 최악의 상황에서 거대한 질량의 물체까지 (심지어 bbox 없이도))가 추출물에 존재해야합니다.

더 큰 추출물을 사용하여 모든 데이터 (예 : country planet.osm 추출물)를 포함하거나 오버 패스 API와 같은 읽기 전용 API를 호출하여 개체를 가져올 수 있습니다.

+0

대단히 감사합니다! – Yasper

0

오버 패스 API가 있습니다. 당신이 관계를 주어진에이 같은 쿼리를 할 필요가 관련된 모든 노드를 추출하려면 :

relation(31249); 
>; 
out; 

참조 : http://overpass-turbo.eu/s/41k

주어진 관계 실행의 (자신의 노드 ID를 가진) 만 선택 방법 회원 :

relation(31249); 
way(r); 
out; 

오버 패스 API는 처음에는 매우 혼란 스럽지만 실제로는 강력합니다.