我目前正在从事一个大学项目,我打算创建一个搭便车的移动应用程序。我希望在前端使用 phonegap 和 Javascript,并将 laravel 作为我的 RESTFUL API。我看过他的 Google map API 文档,但我仍然没有看到 Laravel 的插件,它允许 GPS 路线详细信息存储在 laravel 的后端。
我认为司机和搭便车者之间的路线映射需要在服务器上完成,因为所有路线(旅程)的详细信息都需要存储和搜索。
有没有人曾经从事过类似的搭便车远足项目,您将如何检查搭便车者的路线是否与司机的路线相匹配。当然这个映射必须在服务器上完成,Laravel 有支持这个的 API 吗?
最佳答案
我对您的服务运作方式的解释是,搭便车的人和司机都会说明他们的当前位置和预定的目的地,而搭便车的人将能够根据匹配的路线/目的地叫车(这是一个很酷的想法实际上)。
基于该解释,以下是我可能会如何实现它。
1。创建旅程
Journey
模型是用户希望进行的旅程。它将由许多 Waypoint
模型组成(至少 2 个,最小值是起点和终点)。
Journey
和 Waypoint
之间存在一对多关系。
用户创建了一个Journey
,您使用Google Maps Directions API为其存储 Waypoint
。
2。定期更新用户的位置
用户最终会在路径点之间移动。当他们这样做时,您想知道他们在哪里,以便您可以更新他们的位置,以便他们能够准确地显示在活跃用户的 map 上(我想您会有一个,显示各种 的位置司机
和Hitchhiker
,类似于优步。
3。根据相似航点匹配用户
使用您针对司机和搭便车者的路线存储的航点数据来查找相似的路线/旅程,并就司机可以接载哪些搭便车者提出建议。您甚至可以使用 API 数据根据司机和搭便车者之间的距离来估计接客时间。
还有更多需要考虑的内容,但这是一个相当不错的起点。
您可能需要考虑重新路由(如果用户由于道路施工而无法在某些航路点之间移动,或者他们可能转错了方向 - 考虑您的 SatNav 可能如何处理),也许能够提前计划行程等
要真正回答您的问题,是的,如果您想为此使用 Laravel,您需要在服务器端映射路线并匹配路标。
让我们假设我是一个搭便车的人。
- 我想从 A 到 G。
- 我目前在航点 C
司机 X 在另一条路线上,恰好有我的路点 C、D 和 E。要找到驱动程序 X,您可以执行类似(伪代码)的操作:
// Find a driver with similar waypoints Driver::withSimilarWaypoints($myJourney->remainingWaypoints())->all(); // withSimilarWaypoints scope function scopeWithSimilarWaypoints($waypointsCollection) { $query->whereHas('waypoints', function ($query) use ($waypointsCollection) { $query->where('passed', 0)->whereIn('waypoint_identifier', $waypointsCollection->pluck('waypoint_identifier')); } }
在这种情况下,waypoint_identifier
对我和 Driver X 来说必须是相同的,所以也许是航路点对象的散列,或者您可以使用 place_id
返回的应用程序接口(interface)。
你还想确保你没有匹配你们已经通过的航路点(因此 remainingWaypoints()
和 where('passed', 0)
.
- 司机 X 预计将在 8 分钟内到达航点 C,所以我决定等他们(或者我可以通过应用程序叫车)
所有这些都应该是您服务的一个相当不错的起点。我非常喜欢这个想法——祝你好运!
关于javascript - laravel 中的 GPS 位置跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40029241/