В моем приложении для Android, Я должен рассчитать расстояние между текущим местоположением пользователя и точкой, которую пользователь нажимает на карту. Я использую эту функцию для вычисления:Как получить расстояние между двумя местами в километре в google map v2 с помощью LatLng
public double CalculationByDistance(LatLng StartP, LatLng EndP) {
int Radius=6371;//radius of earth in Km
double lat1 = StartP.latitude;
double lat2 = EndP.latitude;
double lon1 = StartP.longitude;
double lon2 = EndP.longitude;
double dLat = Math.toRadians(lat2-lat1);
double dLon = Math.toRadians(lon2-lon1);
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.asin(Math.sqrt(a));
double valueResult= Radius*c;
double km=valueResult/1;
DecimalFormat newFormat = new DecimalFormat("####");
int kmInDec = Integer.valueOf(newFormat.format(km));
double meter=valueResult%1000;
int meterInDec= Integer.valueOf(newFormat.format(meter));
Log.i("Radius Value",""+valueResult+" KM "+kmInDec+" Meter "+meterInDec);
return Radius * c;
}
Но я получаю очень большое расстояние, как результат, например, для. Я получаю как 10947 км как расстояние между двумя местами, которое находится всего в 20 м. Может кто-нибудь мне помочь?
это работает !. большое спасибо – EasterKim