안녕하세요 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 굉장히 저의 주관적으로 작성된 프로그램 내용이므로 궁금한 점은 대환영 입니다. 댓글이나 방명록을 통해 물어봐 주시면 감사하겠습니다.

 

Posted by Dongkyu
,