2016-12-04 2 views
0

MetroManila.osm 파일이 있는데이 명령을 사용하여 도로를 읽을 수 있도록 파싱합니다 : --keep = --keep-nodes=highway --keep-ways=. 이것은 도로 만 필터링하는 올바른 명령입니까?
구문 분석 후 원하는 것은 교차점이나 곡선이있는 노드를 만드는 것입니다. 아니면 MetroManila.osm에서 전체 노드를 사용하는 것만으로 가능합니까? 그것을 사용하여 가장자리를 만들 수 있습니까? 어떻게합니까? 현재, 나는 정말로 안드로이드 스튜디오와 osmdroid에서 새로 나온 이래로 무엇을해야 할지를 놓쳤습니다.Djikstra 알고리즘에 넣을 수 있도록 노드와 에지 생성 측면에서 .osm 파일을 어떻게 사용합니까?

답변

0

Android 또는 osmdroid와 관련이 없습니다.

OSM 파일에서 라우팅 그래프를 만드는 방법을 배우려면 관련 답변 help.openstreetmap.org을 참조하십시오. 그것에서 인용 :

  1. 모든 방법을 구문 분석; 도로가 아닌 것을 던져 버리고 다른 노드는 참조 된 각 노드에 대한 "링크 카운터"를 증가시켜 노드 ID를 기억하십시오.
  2. 모든 방법으로 두 번째 파싱합니다. way는 일반적으로 하나의 가장자리가되지만 첫 번째 및 마지막 노드와 다른 노드에 링크 카운터가 1보다 큰 경우 해당 지점에서 두 개의 가장자리로 나누십시오. 가장자리의 길이를 계산할 필요가없는 한 링크 카운터가 1이고 첫 번째 나 마지막이 아닌 노드는 버려 질 수 있습니다.
  3. (그래프 노드의 지오메트리가 필요한 경우) XML의 노드 섹션을 구문 분석하여 보유한 모든 노드의 좌표를 기록합니다.

OSM 위키에서 routing을보고 일반적인 힌트와 기존 도구 및 라이브러리를 확인하십시오.

osmdroid 관련 : 오프라인 라우팅에 의존하지 않고 osmbonuspack을 살펴보면 온라인 라우팅이 지원됩니다.

휠을 재발 명하고 싶지 않다면 OSM 위키에서 언급 한 기존 오프라인 라우팅 도구 중 하나를 사용하십시오.