gpt4 book ai didi

android - 如何使用 LatLng 在 google map v2 中以千米为单位获取两个地点之间的距离

转载 作者:搜寻专家 更新时间:2023-11-01 08:00:41 25 4
gpt4 key购买 nike

在我的安卓应用程序中,我必须计算用户当前位置与用户在 map 上点击的点之间的距离。我正在使用这个函数来计算:

     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 米远。谁能帮帮我?

最佳答案

Android 提供了计算两个纬度/经度点之间距离的方法。

android.location.Location.distanceBetween(double startLatitude,
double startLongitude, double endLatitude, double endLongitude, float[] results)

关于android - 如何使用 LatLng 在 google map v2 中以千米为单位获取两个地点之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21719490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com