如何找到特定路线上两点之间的距离?

时间:2014-03-12 12:44:27

标签: android google-maps google-maps-api-3 gps distance

我正在为我的大学开发一个Android应用程序,帮助学生跟踪学院巴士的当前位置,并给他们估计公共汽车可能到达他们的时间。到目前为止,我得到了公交车的当前位置(通过公交车上的设备)和学生的位置。我陷入了必须找到两个GPS坐标之间距离的地方。我必须找到公共汽车和学生之间的距离“沿着特定的路线”(即公共汽车的路径)。使用Google Map API并不总是沿着我想要的路线提供距离。如何找到特定路线上两点之间的距离?

2 个答案:

答案 0 :(得分:2)

Google Maps Android API Utility Library有一系列对您的案例有用的应用程序,包括使用SphericalUtil类中的computeDistanceBetween(LatLng from, LatLng to)方法计算两点之间的距离。

同时检查this link

Google Distance Matrix API提供了原点和目的地矩阵的旅行距离和时间。

或者您可以尝试Google Directions API

另外,我相信this guy had the same doubt of yours

希望这会对你有所帮助。

答案 1 :(得分:1)

我会这样解决:

1)两个GPS点之间的直接视距很简单,只需使用Location.distanceBetween()方法,你就可以在SO上找到这些帖子。

2)路线的长度。 这部分比较困难。如果您对谷歌的结果不满意: 将您的公交线路存储为纬度/经度坐标的粗略序列(多边形线)。每个街角的点应该足够了。 然后找到路线上最近的点,一个简单的蛮力搜索应该足以完成你的任务。 然后简单地从找到的路线点迭代到目的地点,并使用distanceBetween()方法进行总结。