마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

속도측정 어플을 만들어보고 있습니다. 도와주세요...[그림 첨부했습니다]

0 추천

첨부한 이미지에 대략적인 질문을 써놨습니다.

만들면서 느낀 문제점을 먼저 말해보겠습니다

1.NetWork Provider가 보통 BestProvider로 선택되는데, 이게 WiFi 상태에서는 위치를 잘 잡아오는데 4G상태에서는 위도 경도가 아무리 움직여도 변하지가 않습니다... 항상 WiFi상태로 다닐수도 없고 보통 4G를 이용하는데 막막합니다...

2.requestLocationUpdates()에서 아무리 주기를 줄여도 갱신속도가 대략 3~5초정도 걸리는거 같습니다..

갱신속도가 빠를수록 속도를 구하기 쉬울것 같아 -값으로도 해보고 지금은 0으로 줘놨지만 속도가 변함이 없네요.

3.가장 문제점인 부분입니다. hasSpeed()와 getSpeed()가 먹통입니다.

location.hasSpeed()가.. 차를 타고 달려봐도 False에서 도저히 바뀔 생각을 안합니다.. 그러니 getSpeed도  먹통인거라 생각하고 있습니다.

 

안드로이드 펍 회원님들의 답변을 꼭 좀 부탁드립니다.

kawein (120 포인트) 님이 2014년 5월 8일 질문

2개의 답변

+1 추천
1. WiFi의 정확도와 4G의 정확도는 차이가 꽤나 많이 납니다. WiFi의 경우 다른 AP를 선택하면 위치가 이동하고, 4G도 다른 기지국을 만나면 위치가 이동하는 것으로 인식할 것입니다. 때문에 GPS를 사용하여야 하지요.

2.갱신주기는 글쎄요.. 네트워크인 상태에서는 위의 이유로 큰 효과가 있을까싶습니다.

3.속도부분도 마찬가지로 생각됩니다. 네트워크로 위치를 잡는다면 AP나 다른 기지국을 잡아야 이동을 한 것으로 간주하겠지요.. 또는 네트워크로 위치를 잡으면 속도를 반환하지 않을수도 있겠지요.
인연 (31,880 포인트) 님이 2014년 5월 9일 답변
답변 감사합니다. 직접 차량으로 wifi와 4G를 테스트 해보니 4G같은경우 에그를 이용해 이동중에도 체크 해봤더니 wifi는 에그를 들고 이동하니 실시간으로 계속 잡아주고, 4G는 말씀해주신거 처럼 기지국이 바뀔때마다 인식하는지 약 2km 이동시마다 한번씩 위치가 갱신되네요..
그리고 주기가 너무 길어서 hasspeed를 포기하고 매 갱신시마다 위치를 찍어서 Distancebetween 을 사용해서 속도를 재려고 하고 어느정도 성과가 보이고 있습니다. 지금 가장 문제가 되는 부분은 갱신주기인데 구글링을 해보니requestLocationUpdates()함수는 안에 적어둔 주기를 참고만 할뿐이고 직접적으로 영향을 받지 않는다고 하는 글을 봤습니다
혹시 위치를 받아오는 다른 방법이 있을까요 ?

올려주신 상세한 답변 정말 감사합니다. 코딩으로 힘든 시간을 인연님의 친절한 답변이 위로해주네요 오늘도 좋은하루 되시길 ^^
위치를 받아오는 제일 간단하면서도 확실한 방법은 GPS겠지요.
참고로 GPS로 속도를 잰다고 하더라도 갱신 주기는 기기마다 다 다릅니다.(0으로 했을때 어떤 기기는 1초, 어떤 기기는 2초..등등..)
구지 와이파이로 하려는 이유가 있는지요?
가속도 센서나 자이로 센서를 사용하여 적분하여 하는 방법도 있지만 이 방법은 아직은 오차가 좀 많이 나더군요.. (간단하게 구현하였기에 필터링을 하여 잡음을 제거 후 사용하면 줄어들겠지만 워낙에 오차가 심해서 아직까지는 비추천입니다.)
kawein님도 좋은 하루 되시길 바랍니다 ^^
4g와 wifi 같은 네트워크를 이용해서 잡는다면 아무래도 사용자의 편의성이 좋을것 같아서 되도록이면 네트워크를 이용하려고 초기방향을 잡았었습니다. 아무래도 GPS는 사용할때마다 일일이 켜줘야 하고 이후 배터리소모를 줄이려면 다시 꺼줘야 하니 번거로울거라 생각합니다.
그러나 정확도가 우선이라 생각하기에 인연님의 답변처럼 GPS로 다시 시도해봐야겠네요.
다만 문제점이 위에서 말씀드린것처럼 requestLocationUpdates() 에서 리스너를 호출해서 위치를 찍는 주기가 GPS,Wifi,4G 셋중 어느것을 사용하더라도 5초정도로 고정되어 불러주어 답답함을 느끼고 있습니다.
이것은 공부의 부족인거 같아 제가 좀더 찾아봐야될거 같네요.
감사합니다 덕분에 이후 방향을 찾은거 같습니다!
오늘도 불타는 코딩의 시간을 보내야겠네요
0 추천
  1. gps 는 실내에서 안잡힙니다.
  2.  
aucd29 (218,390 포인트) 님이 2014년 5월 9일 답변
답변 감사합니다.
차량 운행중 속도 측정을 목표로 하고있어서 위치를 정확하게 잡아주고 주기를 마음대로 설정할수만 있다면 GPS도 상관 없는거 같습니다
오늘 오후에 귀가할때 GPS도 한번 테스트 해볼예정 입니다.
즐거운 저녁시간 되시길 ^^
...