현재 나의 위치와 여러 지점들의 위치의 거리를 계산하여 보여주는 앱을 개발중인데요
현재 나의 위치는 같고 각각 지점들의 위치는 다릅니다.(당연한것)
지점들의 위치의 공통점은 저와의 거리가 2km안에 있다는 것이구요
결과값이 다르게 나온다는게..
지점들의 각각의 위치는 다른데 결과값이 똑같이 나온다는 것입니다.
일단 거리 구하는 함수입니다.
public String getDistance(double gps1, double gps2){
String distance;
Location locationA = new Location("point A");
locationA.setLatitude(gps1);
locationA.setLongitude(gps2);
Log.i("지점 gps1", String.valueOf(gps1));
Log.i("지점 gps2", String.valueOf(gps2));
Location locationB = new Location("point B");
locationA.setLatitude(mygps1);
locationA.setLongitude(mygps2);
Log.i("나의 gps1", String.valueOf(mygps1));
Log.i("나의 gps2", String.valueOf(mygps2));
distance = Double.toString(locationB.distanceTo(locationA));
Log.i("거리", String.valueOf(distance));
return distance;
}
pointA가 지점이고 pointB가 저의 위치입니다.
그런데 로그를 찍어보면...
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/지점 gps1﹕ 37.588394
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/지점 gps2﹕ 127.006714
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/나의 gps1﹕ 37.5814391
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/나의 gps2﹕ 127.0096693
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/거리﹕ 1.3186318E7
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/지점 gps1﹕ 37.584625
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/지점 gps2﹕ 127.0103
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/나의 gps1﹕ 37.5814391
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/나의 gps2﹕ 127.0096693
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/거리﹕ 1.3186318E7
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/지점 gps1﹕ 37.592163
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/지점 gps2﹕ 127.01738
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/나의 gps1﹕ 37.5814391
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/나의 gps2﹕ 127.0096693
05-29 18:22:33.639 29588-29675/com.example.ab.ab1 I/거리﹕ 1.3186318E7
반복문때문에 여러번 찍힙니다..반복문안에서 한번 실행할때마다 지점이 바뀌구요...
보시면 알겠지만 지점들 위치가 다른데 결과값은 같습니다.. 이거 어떻게 된걸까요?
실제 거리가 한 1km차이 나는 지점들도 결과값이 같습니다...이함수의 오차가 큰걸까요? 아님 제가 잘못하고있나요?
그리고 이함수의 리턴값이 미터단위라고 하는데... 저 결과의 마지막 E7은 뭘 의미하나요?