我正在使用 LocationManager 获取用户的纬度和经度值。这些值会定期更新到数据库中。
现在,我想根据存储的纬度和经度值找出两个用户之间的距离。我想在两个用户之间的距离小于(比如 100 米)时显示一条消息。任何人都可以通过教程或一些示例代码来指导我如何实现它。
我正在使用 LocationManager 获取用户的纬度和经度值。这些值会定期更新到数据库中。
现在,我想根据存储的纬度和经度值找出两个用户之间的距离。我想在两个用户之间的距离小于(比如 100 米)时显示一条消息。任何人都可以通过教程或一些示例代码来指导我如何实现它。
您可以查看Location类。您可以设置经度和纬度,并且有一个可以使用的distanceTo方法
Ou pode utilizar este metodo que eu desenvolvi... 或者你可以使用我开发的这个方法...
public static Double distance(latitudeA, latitudeB, longitudeA, longitudeB) {
double radius = 3958.75;
double dlat = ToRadians(Double.parseDouble(String.valueOf(latitudeB))
- Double.parseDouble(String.valueOf(latitudeA)));
double dlon = ToRadians(Double.parseDouble(String.valueOf(longitudeB))
- Double.parseDouble(String.valueOf(longitudeA)));
double a = Math.sin(dlat / 2)
* Math.sin(dlat / 2)
+ Math.cos(ToRadians(Double.parseDouble(String.valueOf(latitudeA))))
* Math.cos(ToRadians(Double.parseDouble(String.valueOf(latitudeB)))) * Math.sin(dlon / 2)
* Math.sin(dlon / 2);
double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
Double d = radius * c;
double meterConversion = 1609.00;
return d * meterConversion;
}
private static double ToRadians(double degrees) {
double radians = degrees * 3.1415926535897932385 / 180;
return radians;
}