我在我的应用程序中获得了两个 GEO 位置,我必须计算它们之间的距离,在距离计算之后,我必须将该结果与在我的情况下定义的阈值进行比较,我50 meters
将如何在浮点中定义该阈值。此外,目前我的 android fone 位于同一位置,但我总是在间隔超过 50 米后确定我的 2 个两个地理位置之间的计算距离。这怎么可能?我将 50 米的阈值视为:
private static final float DISTANCE_CHANGE_METERS = 50.0f; //50 meters
我正在通过在 StackOverflow 上找到的以下公式计算距离:
public static float distFrom(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 3958.75;
double dLat = Math.toRadians(lat2 - lat1);
double dLng = 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(dLng / 2) * Math.sin(dLng / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
double dist = earthRadius * c;
int meterConversion = 1609;
return new Float(dist * meterConversion).floatValue();
}
请在这方面帮助我。谢谢!