도로중심선만으로 네트워크 데이터 구축하기 ㅡ 2/3

단순 선형 데이터인 도로중심선을 이용해 노드와 링크 DB를 생성하기 위한 툴을 DuraMap-Xr을 이용해 개발하였습니다. 아래는 해당 툴의 화면입니다.

이 툴을 이용해서, 입력된 도로중심선에 대해 생성된 Node와 link 데이터를 표현해 보면 아래와 같습니다. 먼저 입력된 도로중심선입니다.

위의 도로중심선이 아래처럼 노드와 링크 데이터로 분리되어 생성됩니다.

생성된 노드 DB에 대한 속성 데이터는 아래와 같습니다. 노드에 표시된 숫자는 각 노드에 연결돈 링크의 개수입니다.

그리고 링크 DB에 대한 속성 데이터는 아래와 같습니다.

그러나 위의 노드와 링크에 대한 SHP 파일만을 가지고는 최단 경로 찾기에 대한 알고리즘(A*)을 효율적으로 적용하기 어렵습니다. 특히 Link에 대해서는 빠르고 효율적인 Node 참조가 가능 수 있도록 SQLite와 같은 DBMS에 저장해 둘 필요가 있으며 이러한 목적으로 아래와 같은 툴을 사용하여 Link에 대한 데이터를 SQLite 파일로 생성할 수 있습니다.

위의 SQLite 파일안에는 Link 테이블이 존재하며 Link에 대한 SHP 파일 중 도형 정보 이외의 속성정보를 그대로 가지고 있습니다. 또한 LinkID와 StartNode 그리고 EndNode에 대한 인덱싱 정보를 가지고 있어서 빠른 Query가 가능합니다. 이로써 최단 경로 알고리즘에서 사용하기 위한 기본적인 노드, 링크에 대한 데이터 파일이 준비되었습니다.

“도로중심선만으로 네트워크 데이터 구축하기 ㅡ 2/3”에 대한 5개의 댓글

  1. 안녕하세요 좋은 정보 감사드립니다.

    제가 하는 간단한 프로젝트 중에 하나가

    도로중심선에 대한 SHP 파일을 통해 노드와 링크 데이터로 구성된 네트워크 데이터를 구축하는 것입니다.

    관리자님께서 올려주신 글이 많은 도움이 되었습니다.

    혹시 데이터와 링크 DB를 생성하는 툴에 대해서 조금 더 자세히 알려주실 수 있으신가요?

    감사합니다.

    1. 안녕하세요, 김형준입니다.
      좀더 부연 설명을 드리면..
      노드와 링크 데이터를 생성하기 위한 데이터는 오직 도로명주소 DB에서 제공되는 도로중심선에 대한 shp 파일만을 사용하였습니다.
      이 shp 파일에서 좌표값을 읽기 위해 DuraMap-Xr이라는 GIS 엔진을 사용하였습니다.
      또한 이 입력 shp 데이터가 undershot과 overshot이 매우 많이 발생하는데요. (이 두 shot에 대한 내용은 글에 언급되어 있습니다)
      이 문제는 선을 연장하거나 자르거나 해서 해결하였고… 이렇게 만들어진 노드, 링크 데이터를 db화 하기 위해 사용한 dbms는 sqlite를 사용한 것입니다.
      글의 내용과 많은 부분 중복되어 도움이 될까 싶기는 합니다만.. 이렇습니다..

      1. 안녕하세요 답변 너무너무 감사드립니다.

        제가 꼼꼼히 읽는다고했지만 지식이 부족해서 놓친부분이 많았네요. 그 DuraMap-Xr을 이용해서 개발하신 툴(아마도 Network DB Builder 인것 같은데…)은 쉐어를 안해주시나요? 혹시나 해서 여쭈어봅니다…

        감사합니다.

        1. 안녕하세요, 김형준입니다.
          해당 프로그램을 공개할 계획이 없답니다.
          향후에 네트워크 데이터 자체를 주기적으로 가공해 공개할 계획이랍니다.

          1. 아 넵 여튼 감사합니다.
            올려주신 글들이 너무나도 큰 도움이 되고 있습니다.
            감사합니다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다