如何使用googlemapsapi检查路线之间是否存在位置


how to check whether a place is present in between a route using google maps api

hi我正在开发一个关于拼车的项目(用户可以提供搭车服务,也可以从人那里搭车)这个问题可以通过一个示例更好地理解


示例:
假设一个人a从起点a到终点a旅行,并准备在他的车上提供一些座位。当一个人B这样做时,他的起始位置startB在起点a到起点a之间,他的终点B可能在起点a和终点a之间,也可能不在起点a与终点a之间。
然后如何使用googlemapsapi检查startB是否介于startA和endA之间
我正在用PHP做我的项目。

这听起来像是"沿路线搜索"问题,谷歌地图API与此问题没有完全匹配,但有一种方法可以很好地满足您的目的。

让我假设您可以将计算委托给浏览器的JavaScript引擎。然后,您可以请求从起点a到终点a的路线,并使用RouteBoxer,其阈值为T1,即人员a愿意偏离原始路线多远,以便选择人员B。

有了这个阈值,您可以构建一组边界框,沿着距离T1内从startA到startB的路线进行搜索,并检查startB是否包含在其中一个框中。

还有一个阈值T2,即个人B愿意在离endB多远的地方下车,但你可以通过请求(在不同的请求中)从endA到endB的驾驶和/或步行方向来轻松计算这个阈值。如果上述情况(startB在距离路线T1以内)成立,但从endA到endB的距离大于T2,则您可以警告人员B或完全放弃路线。

这个项目听起来很有趣,但我要提醒你一件事:你不想使用PHP从自己的服务器向Google Maps API(特别是Directions API)发送请求。当用户实时提供输入时,则不会。相反,您应该让每个用户的浏览器使用JavaScript来处理请求。否则,当你的网站越来越受欢迎时,它将耗尽该服务的每日津贴。阅读地理编码策略了解更多信息。