使用tomtom location api和android获取用户之间的距离
我正在开发一个android应用程序,用户可以在其中知道他和其他用户之间的距离。我正在为此使用tomtom定位api。我只是想知道,当我拥有当前用户和其他用户的纬度和经度时,如何获得他们之间的距离使用tomtom location api和android获取用户之间的距离,android,location,tomtom,tomtom-android-sdk,Android,Location,Tomtom,Tomtom Android Sdk,我正在开发一个android应用程序,用户可以在其中知道他和其他用户之间的距离。我正在为此使用tomtom定位api。我只是想知道,当我拥有当前用户和其他用户的纬度和经度时,如何获得他们之间的距离 提前感谢如果您已经拥有两个用户的坐标,则可以使用下面的函数进行计算。答案来自于这样的线索 我假设你只需要计算两点之间的大圆距离。 下面隐藏着数学解释: 检查TomTom类:com.TomTom.online.sdk.common.util.DistanceCalculator 方法: distanc
提前感谢如果您已经拥有两个用户的坐标,则可以使用下面的函数进行计算。答案来自于这样的线索
我假设你只需要计算两点之间的大圆距离。 下面隐藏着数学解释: 检查TomTom类:
com.TomTom.online.sdk.common.util.DistanceCalculator
方法:
distance calculator#大循环距离(LatLng-LatLng,LatLng-reflatling)
distance calculator#calcdistinkilometer(LatLng destination,LatLng origin)
如果您需要精确计算路线距离,请使用routing sdk:您要的是直线距离还是步行/汽车距离?
private double distance(double lat1, double lon1, double lat2, double lon2) {
double theta = lon1 - lon2;
double dist = Math.sin(deg2rad(lat1))
* Math.sin(deg2rad(lat2))
+ Math.cos(deg2rad(lat1))
* Math.cos(deg2rad(lat2))
* Math.cos(deg2rad(theta));
dist = Math.acos(dist);
dist = rad2deg(dist);
dist = dist * 60 * 1.1515;
return (dist);
}
private double deg2rad(double deg) {
return (deg * Math.PI / 180.0);
}
private double rad2deg(double rad) {
return (rad * 180.0 / Math.PI);
}