본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] 위치 정보 (GPS) 가져오는 세 가지 방법 및 고려 사항.

by 돼지왕 왕돼지 2012. 2. 10.
반응형

안녕하세요 돼지왕왕돼지입니다.
오늘은 안드로이드 단말에서 위치정보 ( 위도, 경도, 고도 ) 를 가져오는 세 가지 방법이 무엇인지 알아보고, 고려해야 할 사항들도 체크해보도록 하겠습니다. 여기서 말하는 세 가지 방법이란, How to code. 즉 코딩을 하는 방법이 아닌, With what. 무엇을 통해라는 의미로 보는 것입니다.


GPS 사용하여 위치 정보 얻어오기

 
 건물 내부에서는 GPS 로 위치정보를 가져오는 것이 불가능하다고 말할 정도로 어렵습니다. ( 심지어 길거리를 돌아다녀도, 단말이 주머니 안에 있으면 위치정보를 알기 힘든 상황이니.. ) 이 경우에는 보통 사용자가 마지막에 GPS를 구동시켰던 장소를 내 현재 위치로 잡게 됩니다. 마지막 위치에서 단말의 전원을 끈 상태로 멀리 떨어져 있는 건물로 이동했다면, 위치정보의 정확도가 현저히 떨어지겠죠. 
 
 GPS의 또 다른 단점은 GPS 정보를 가져오는데 시간이 꽤 오래 걸린다는 점입니다. 요즘은 Network 계열을 이용하여 기본정보를 가져온 후 이를 바탕으로 정확한 위치정보를 찾는 기술인 A-GPS 라는 방법으로 시간문제를 많이 해결했지만, 아직도 GPS 만 사용하는 경우는 매우 많지요.

 또다른 단점은 베터리 사용량이 상당히 높은 편이라는 것입니다.

그럼 GPS 를 왜 쓰느냐? 다른 방법들에 비해서 정확도가 매우 높기 때문입니다.
 
 

WI-FI 사용하여 위치정보 얻어오기.

 
 GPS 비교하여 고질적인 문제는, 실외 이동중에 Wifi를 사용하기가 어렵다는 점입니다.

 안드로이드의 기본 policy 는 장비가 sleep 에 들어갔을 때 Wi-fi 연결을 disconnect 하는 것도 포함되어 있습니다. 따라서 위치정보에 따른 지속적인 update 가 어렵다는 단점도 가지고 있습니다.

 Wi-fi 는 초기 연결시 꽤나 높은 베터리 사용량 자랑하고 있습니다.

 그럼 Wi-fi 를 왜 쓰느냐? 정확도가 높은 편이며, 인터넷 연결이 되어 있는 환경이라면 위치정보를 가져오는 시간도 매우 짧은 편이기 때문입니다.



Cell ID 사용하여 위치정보 얻어오기. ( 3G, LTE )

 
위치정보의 정확도가 세 가지 방법중에 가장 낮습니다. 200m 이상 차이가 허다하다고 합니다. ( 경우에 따라 다르겠지만 )

Cell ID 를 사용하는 경우 Data 를 사용하기 때문에 무제한 요금제가 아니면 요금이 부과될 수도 있다고 합니다.

하지만, 갱신속도가 가장 빠르며, 대부분의 폰에서 항상 Network 가 On 상태이기 때문에 특별히 추가 배터리도 소모하지 않습니다.
 


각각의 방법이 모두 장단점을 가지고 있습니다.
그러니 개발하는 앱의 환경에 맞도록 위치 정보를 가져오는 Source 를 설정해야겠죠?

그럼 오늘도 즐거운 하루 되세요~ 

 
로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글