본문 바로가기

나의 플랫폼/안드로이드

[Android] GPS 위치 추적 속도 구하기!

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

위치 추적 중 속도를 구할려고 하는 사람들이 많을 것이다.

그때 여러 가지 방법을 해보았을 것이다.


Location.distanceBetween 함수를 이용하여 거리를 구하고,

위치 추적 시간을 체크하여 속도를 구한 후,

그 속도를 km/h로 변경했을 것이다.


하지만, 위 방법으로 했을 경우 위치 변경 값이 정확하게 왔는지

또 거리 값이 meter로 정확 한지~

위치 변경 시간이 다음 onLocationChanged 함수가 호출된 시간과 일치 하는지..

정확한 속도값을 구하는데 어려움이 많았다.

저 또한... 2주간 위 공식으로 열심히 해결을 해보려 했지만..

쉽지 않았다.


그 때, 전부터 눈여겨 봤던 함수가 있었는데 ~

바로 Location 클래스에 있는 getSpeed라는 함수이다.!

위 함수를 처음 테스트 했을 때 계속 0.0만 나오니... 쓸모 없나.. 했다.


그때 여러번에 테스트 결과 이것은 나의 생각이다. (100% 맞지 않을듯..)

locationManager가 Setting이 되고 그에 맞춰 GPS를 사용하면

특정 GPS에서 위치 변화에 따라 속도 값을 같이 전달해주는 듯하다.

그래서 그 속도 값을 hasSpeed를 이용해 있는지 없는지 확인 하고

getSpeed로 이용하여 얻으면 된다.


반복적으로 위치 추적을 한 후, 결과 값에서 getSpeed를 출력해보라!

스피드 값을 볼 수 있을 것이다! 따단! ㅋㅋㅋ

어렵게 계산 하지 말고~ 쉬운 API가 있으면 이용하자~


참고!!

결과 값이 m/s 입니다.

km/h로 고치기 위한 공식!!!

m/s * 3600 / 1000

즉, 3.6을 곱해주면 됩니다.!^^





'나의 플랫폼 > 안드로이드' 카테고리의 다른 글

[ Android ] PreferenceActivity와 Activity 상관 관계  (2) 2013.08.26
[Android] Dialog 중복 방지  (4) 2013.07.12
[Android] Looper와 Handler 관련.  (0) 2013.07.09
[Android] InputFilter  (0) 2013.07.08
notification  (0) 2013.07.04