현재 GPS 기반으로 이동 거리(미터)를 구하고 있습니다.
public void onLocationChanged(Location location) {
if (a==true) {
Beforelocation = location;
a = false;
}
if (location != null) {
Toast.makeText(this, "이전1 : " + Beforelocation + "현재1 : " + location, Toast.LENGTH_SHORT).show();
if (Beforelocation != location) {
range = Beforelocation.distanceTo(location);
all_range += range;
Toast.makeText(this, "이전2 : " + Beforelocation + "현재2 : " + location, Toast.LENGTH_SHORT).show();
}
String Rrange = String.format("%.0f", all_range);
tv_moving.setText("현재 이동거리: " + Rrange + "M");
}
}
현재 위치를 처음에 beforelocation에 넣고 if문을 이용하여 변경된 위치와 같지 않을 경우
location.distanceTo를 써서 거리를 구하고 있습니다. 하지만 이런 식으로 하니까 거리 값이 엄청나게 증가하네요.
아무래도 ononLocationChanged 가 계속해서 불러져서 이동 값이 엄청나게 빠르게 더해지면서 일어나는 문제인 것
같은데 어떻게 해결 할 수 있을까요?? ㅠㅠ
보통 이동 거리를 측정하는 어플은 이렇게 하는게 아니라 다른 방식이 있나요? 도와주세요 ㅠㅠ