티스토리 뷰

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

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


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을 곱해주면 됩니다.!^^





댓글
댓글쓰기 폼
공지사항
Total
413,955
Today
1,077
Yesterday
1,062
«   2018/11   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
글 보관함