我正在创建一个骑行应用程序,它是一个优步的应用程序。使用PHP for API来交流Android和ios设备。我的后端代码几乎与Android和ios应用程序一起完成。现在我有计算实时距离的问题。如果我使用谷歌距离矩阵api,谷歌返回我的距离不是我的实时距离。我的意思是谷歌返回基于可用的路线。如果我按照谷歌距离建议的路线对我来说没问题,但如果我使用不同的路线我怎么能计算距离?有可能计算实时距离吗?如果可能的话,请你给我一个想法吗?
答案 0 :(得分:0)
使用此
Location locationA = new Location("point A");
locationA.setLatitude(latA);
locationA.setLongitude(lngA);
Location locationB = new Location("point B");
locationB.setLatitude(latB);
LocationB.setLongitude(lngB);
distance = locationA.distanceTo(locationB) ;
答案 1 :(得分:0)
//尝试这样,它会帮助你
CLLocation * Location1 = [[CLLocation alloc] initWithLatitude:latitude1 longitude:langitude1];
CLLocation * Location2 = [[CLLocation alloc] initWithLatitude:latitude2 longitude:langitude2];;
CLLocationDistance distance = [Location1 distanceFromLocation:Location2];
double distance1 = (distance/1000);
答案 2 :(得分:0)
首先,你需要计算纬度和经度的距离。
计算距离使用以下代码: -
private double getDistance(Context context, Location location, Loation PerviousLocation) {
if (location != null && PerviousLocation != null) {
double lat = PerviousLocation.getLatitude();
double longe = PerviousLocation.getLongitude(); ;
float[] distance = new float[1];
Location.distanceBetween(lat, longe, location.getLatitude(), location.getLongitude(), distance);
return distance[0];
}
return 0;
}
现在找到时间间隔
private double getDifferenceInTime(Context context, long currentTime, long previousTime) {
long diff = currentTime - previousTime;
return diff / 1000;
}
现在使用速度公式: -
Speed:- distance/time;
某些时间位置对象也提供速度。使用可以使用Location.getSpeed();