Php 如何根据纬度和经度计算距离
我正在创建一个骑马应用程序,它是一个类似优步的应用程序。使用PHP for API与Android和ios设备进行通信。我的后端代码几乎与Android和ios应用程序一起完成。现在我在计算实时距离时遇到了问题。如果我使用谷歌距离矩阵api,谷歌返回的距离不是我的实时距离。我的意思是谷歌返回基于路线可用。若我遵循谷歌建议的路线,距离对我来说是可以的,但若我使用不同的路线,我如何计算距离?可以计算实时距离吗?如果可能的话,你能给我一个主意吗?用这个Php 如何根据纬度和经度计算距离,php,android,ios,google-maps,Php,Android,Ios,Google Maps,我正在创建一个骑马应用程序,它是一个类似优步的应用程序。使用PHP for API与Android和ios设备进行通信。我的后端代码几乎与Android和ios应用程序一起完成。现在我在计算实时距离时遇到了问题。如果我使用谷歌距离矩阵api,谷歌返回的距离不是我的实时距离。我的意思是谷歌返回基于路线可用。若我遵循谷歌建议的路线,距离对我来说是可以的,但若我使用不同的路线,我如何计算距离?可以计算实时距离吗?如果可能的话,你能给我一个主意吗?用这个 Location locationA = new
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) ;
//像这样试试,会对你有帮助的
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);
首先,您需要计算从纬度到经度的距离 要计算距离,请使用以下代码:-
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;
某些时间位置对象也提供速度。Use可以使用Location.getSpeed()代码>