我正在尝试开发一个Android应用程序。我已经在我的后端(php MySQL)中列出了一些经度/纬度和其他描述的地方。我试图抓住用户当前的位置,并向他显示与列出的地方的道路距离及其描述。但我很难找到从当前位置到所有其他地方的道路距离。我想一种方法是使用Todd Motto's但是在这种情况下会有两个API调用,
然后我的后端会向我的设备发送回复。为此目的调用两个API是一个好主意。还有其他方法可以轻松完成。我是新手,所以如果我错了,请原谅我。
谢谢。
答案 0 :(得分:1)
public float distance(double lat1, double lng1, double lat2, double lng2) {
double earthRadius = 6371; // kilometers
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));
float dist = (float) (earthRadius * c);
return dist * 1000;
}
现在调用您的代码
float distanceInMeters= distance(oldLatitude, oldLongitude,newLatitude, newLongitude);