gpt4 book ai didi

android - 为什么 Android location.distanceTo 返回以百万为单位的值?

转载 作者:行者123 更新时间:2023-11-29 15:09:04 27 4
gpt4 key购买 nike

在我的 Android 应用程序中,我试图计算两个位置之间的距离,但我得到的值是数千万 1100 万+。两点/位置之间的实际距离仅为 1.1 公里 - 1.3 公里。为什么会这样?即使 .distanceTo 方法返回的值以米为单位,11M 米仍然是一个非常大的值。

这是我的代码:

        Location locationA = new Location("LocationA");
locationA.setLatitude(lat);
locationA.setLongitude(lang);

Location locationB = new Location("LocationB");
locationB.setLatitude(14.575224);
locationB.setLongitude(121.042475);

float distance = locationA.distanceTo(locationB);
BigDecimal _bdDistance;
_bdDistance = round(distance,2);
String _strDistance = _bdDistance.toString();

Toast.makeText(this, "distance between two locations = "+_strDistance, Toast.LENGTH_SHORT).show();

public static BigDecimal round(float d, int decimalPlace) {
BigDecimal bd = new BigDecimal(Float.toString(d));
bd = bd.setScale(decimalPlace, BigDecimal.ROUND_HALF_UP);
return bd;
}

最佳答案

您的近似值是正确的。它返回以米为单位的距离。

像这样除以1000就可以换算成KM了;

float distance = locationA.distanceTo(locationB)/1000;

阅读更多关于 distanceTo here .

关于android - 为什么 Android location.distanceTo 返回以百万为单位的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33799230/

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