안녕하세요 DKLEE 입니다.

 

지난 프로그램 과정....

C# Serial Port 통신 - GPS 수신 (1/2)
C# Serial Port 통신 - GPS 수신 (2/2)

C# Serial Port 통신 - GPS 수신 완성

 Serial 통신을 통하여 GPS 모듈로부터 나온는 RAW DATA를 가지고 OPEN API 를 이용해 현재 위치를 지도에 띄우는 작업을 저번부터 해왔었습니다.

 저번 프로그램은 지도와 WinForms 상호간에 데이터가 일방적이였던 반면 이번 프로그램에서는 이를 개선하여 상호간 데이터를 자유롭게 얻거나 설정 할 수 있게 되었습니다. 전체적으로는 달라진게 없어보이지만 앞으로 발전해 나갈 방향을 생각했을땐 상당히 도움이 될것이라 생각됩니다.

 

 우선 저번과 달라진 점은GMap.NET 이라는 Open Source .NET Control 을 사용한점입니다. 이 컨트롤은 WinForms 디자인(도구모음)에서 간단하게 추가하여 사용할 수 있습니다. OPEN MAPS 또한 Google / Bing / Yahoo 등의 일반지도 그리고 위성지도까지 설정, 사용이 가능합니다. 또한 위도,경도 데이터를 바로 집어 넣을 수 있으며, 현재 선택한 위치(위도, 경도)를 간편하게 얻어 올 수 있어서 다양한 용도로 사용이 가능하게 됩니다.

 이전 프로그램의 문제점이 여기에 있습니다. 데이터를 집어넣어 지도에 현재 위치를 나타내기는 쉽지만 얻어오는 과정이 상당히 까다로웠습니다. 이유는 이전 Open API 지도들은 전부 익스플로러의 웹상에서 컨트롤이 가능했기때문에 WinForms 와 연동하기 어려웠기 때문입니다. 하지만 GMap.NET 을 통해 손쉽게 Open API Maps 를 사용할 있었습니다.

 

 GMap.NET 의 DLL 을 추가하게 되면 아래와 같이 도구모음에 뜨게되며 속성을 통해 여러 작업을 할 수 있습니다.

 

아래는 위 컨트롤을 간단하게 사용해본 예제 소스입니다.^^

 

 마커는 지도에 현재 위치나 목적지등 압정처럼 생긴 작은 표시를 지도에 표시해주는 기능을 합니다. 오버레이 객체에 삽입 하여 최종적으론 지도 컨트롤에 삽입함으로서 실제로 화면에 표시해 주는 기능을 하게됩니다. 아래는 최종 실행 결과 입니다.

 

 

p.s 굉장히 저의 주관적으로 작성된 프로그램 내용이므로 궁금한 점은 대환영 입니다. 댓글이나 방명록을 통해 물어봐 주시면 감사하겠습니다.

 

  1. 지재원 2009/11/19 15:21 답글수정삭제

    감사합니다. 덕분에 완성 했씁니다~~~

    해보니깐 정말 gmap.net 을 이용하니깐 쉽네요~ㅋㅋ

    감사합니다~~

  2. 작은아이! 2009/11/20 07:14 답글수정삭제

    우와! C# 천재! C# 천재!
    또 뭘 만들고 있나요? ㅋㅋ

    • DKLEE 2009/11/20 08:59 수정삭제

      졸업작품에 사용하는 GPS 시스템(?) 이에요ㅋㅋ 전동 휠체어의 자동 주행모드에 사용한답니다. 경로대로 따라가야 하는데 GPS 오차가 심하네요ㅠ

    • 작은아이! 2009/11/20 14:09 수정삭제

      저도 지난 겨울에 GPS 관련 프로젝트 했는데..
      오차가 정말 심하더라고요! 그래서 허접하지만,
      보정하는 알고리즘 만들어서 썼었던걸로 기억해요.

  3. K 2010/01/15 15:05 답글수정삭제

    블로그 보고 많은 도움 얻었습니다
    GMap.NET사이트 가보니 어플다운은 있는데 컨트롤이 없네요
    제가 잘못 찾고 있는건지 아니면 바껴서 그런건지 잘 모르곘네요
    아무리 찾아봐도 없는;;;;

트랙백 주소 :: http://dklee.net/56/trackback/
옵션
댓글 달기