[GIS] 블랙포인트(BlackPoint)를 이용한 GPS 테스트

모바일 디바이스(사용 디바이스: 갤럭시 플레이어 70)에 기본 장착된 GPS의 위치 정확도를 테스트해 볼 목적으로 블랙포인트(BlackPoint)를 이용해 GPS Tracking 앱을 만들어 직접 실외에서 실행해 보았습니다. 대상 지역은 서초구 서초동입니다. 아래의 화면은 디바이스의 실제 실행 화면을 캡춰한 이미지입니다.

사용자 삽입 이미지
점심 식사를 하고 도보로 천천히 걸으며 대로와 골목길로 위치를 추적해 보았습니다. 상당히 일치하는 부분과 상당히 벗어나는 부분이 존재하는 것을 알 수 있습니다. 그 이유를 파악하기 위해 위의 경로를 KML로 저장하고 구글어스에서 표시해 보았습니다.

사용자 삽입 이미지
위치가 크게 벗어나는 부분은 4곳으로.. 1곳은 디바이스의 이미지를 캡쳐하기 위해 사무실인 실내로 들어옴으로써 발생하는 오차입니다. 나머지 3곳에 대해서 위의 이미지에 표시를 해보았습니다. 결과적으로 고층건물에 의한 위치 오차라고 생각됩니다. 3곳에 대한 이미지를 좀더 확대해 보면 각각 다음과 같습니다.

사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지
만약 주위에 고층건물이 없다면 모바일 디바이스의 GPS 만으로도 어느 정도 정확한 위치를 파악할 수 있으리라 생각됩니다. 하지만 좁고 거미줄처럼 복잡한 골목길에 대한 위치의 파악은 GPS만으로는 어렵지 않을까… 예상해봅니다.

[Android] GPS 기능 관련 API 예제

모바일이 이미 충분히 대중화되었음으로 해서.. GIS 분야 중 하나인 LBS(Location Based System; 위치 기반 시스템)을 활용할 수 다양한 앱이 꽃을 피울 기회를 맞이 한지 이미 꽤 오래되었습니다.

이에 안드로이드가 탑재된 모바일 기기의 GPS를 통해 현재 자신의 위치를 얻을 수 있는 안드로이드 API를 활용하는 샘플 코드를 공유해 봅니다. 아래는 샘플 코드에 대한 스크린 샷입니다.

사용자 삽입 이미지
위치(WGS84 타원체에 대한 경위도)는 물론이고 현재 이동 속도과 위치 정확도(휴대용 GPS의 경우 최고의 정확도 오차는 10m로 제한됨) 등을 얻어와 화면에 표시하고 있습니다. 또한 GPS의 원체 데이터 형식인 NMEA0183을 표시하고 있습니다.

GPS에게 위치데이터 힌트를 제공하는 인공위성의 수 역시 제공하고 있는데요. 이 인공위성의 수는 NMEA0183 데이터로부터 얻어올 수 있습니다. 긴 설명보다는 실제 실행 가능한 예제 코드 샘플을 공유합니다.

인터넷 상에서 공유되고 있는 다양한 소스를 취합하여 이 하나의 예제 샘플을 제작했습니다. 안드로이드에서 GPS로부터 위치 데이터 등을 취득하고자 하시는 개발자 분들에게 조금이라도 도움이 되시길 바랍니다.

GPS로부터 수신받은 좌표(WGS84 타원체의 경위도 좌표)를 다른 좌표계로 변환하기 위한 방법은 다음 URL을 통해 살펴보시기 바랍니다.