Php 计算两个经纬度之间的道路距离
我正在尝试开发一个android应用程序。我在我的后端(php MySQL)中列出了一些地方及其经度/纬度和其他描述。我试图抓住用户的当前位置,并向他展示到那些列出的地方的道路距离以及他们的描述。但我很难找到从当前位置到所有其他地方的道路距离。我想一种方法是使用,但在这种情况下,将有两个API调用Php 计算两个经纬度之间的道路距离,php,android,google-maps,Php,Android,Google Maps,我正在尝试开发一个android应用程序。我在我的后端(php MySQL)中列出了一些地方及其经度/纬度和其他描述。我试图抓住用户的当前位置,并向他展示到那些列出的地方的道路距离以及他们的描述。但我很难找到从当前位置到所有其他地方的道路距离。我想一种方法是使用,但在这种情况下,将有两个API调用 从我的设备到后端的第一个 第二个是从后端到谷歌距离矩阵API 之后,我的后端将向我的设备发送响应。为此,调用两个API是一个好主意。还有没有其他方法可以轻松做到这一点。我是新手,如果我错了,请原谅
- 从我的设备到后端的第一个李>
- 第二个是从后端到谷歌距离矩阵API
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);
除非您拥有每条道路的gps坐标,并且能够追踪通过这些道路的最佳路径以获得距离,否则您将不得不执行两个api调用。除非有办法直接从你的应用程序中调用google。我不太了解那个api,但你不能直接从设备中调用它吗?即使我直接调用google api,我也必须首先从我的服务器中获取位置列表及其详细信息。同样,两个API调用都是为了一个目的。这是道路距离还是两个经纬度之间的正常距离?对不起。这是纬度。但它也适用于路线。为此,只需使用以下值调用此函数返回路线,谢谢。但我不知道什么是“返回路线”。你能解释一下吗。