두 개의 GPS 위치 사이의 거리를 계산하고 싶습니다. 각 GPS 값은 기수 값과 경도 값으로 계산됩니다. 단거리 결과에 대해서는 계산이 정확해야합니다. 예. < 300m. Google 어스를 사용하는 경우 (코드에있는 coord 참조) 거리는 ~ 136m입니다. 제가 제공하는 솔루션을 사용하는 경우 : http://www.movable-type.co.uk/scripts/latlong.html (haversine 수식) 그 결과는 거의 없습니다.GPS 거리 계산
사용되는 코드 :
public void GpsCalc(){
double d = getDistance(51.342299,4.371359, 51.342490,4.371997);
Log.e("GpsCalc", String.valueOf(d));
}
public static double getDistance(double lat1, double lng1, double lat2, double lng2){
double R = 6371; // earth’s radius (mean radius = 6,371km)
double dLat = Math.toRadians(lat2-lat1);
double dLon = Math.toRadians(lng2-lng1);
double a = Math.sin(dLat/2) * Math.sin(dLat/2) +
Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) *
Math.sin(dLon/2) * Math.sin(dLon/2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
double dr1 = R * c;//in radians
Log.e("getDistance-dr1", String.valueOf(dr1));
return dr1;
}
나는 그것이 약간 변경해야 확신 해요,하지만 난 그것을 볼 수 없습니다.
Google은 '안드로이드 GPS 거리'에 대해 많은 답변을 제공합니다. 예를 들면 다음과 같습니다. http://www.tutorials-android.com/learn/How_to_calculate_the_distance_between_two_GPS_coordinates.rhtml –
당신은 300m 미만을 기대한다고 말했지만 그게 정확히 무엇입니까? 해당 페이지로 좌표를 넣거나 코드를 통해 실행하면 0.049km = 49m로 끝납니다. 문제가 Google 어스에 더 가까이있을 것으로 예상됩니까? – kabuko
카 부코, 그게 내 문제 야. GoogleEarth는 더 현실적인 136m를 반환합니다. 나는 작은 편차가 <10m 만큼은 상관하지 않지만, 136과 49는 너무 큰 차이가 있습니다. –