【问题标题】:GPS location tracking in laravelLaravel 中的 GPS 定位跟踪
【发布时间】:2018-07-11 17:59:34
【问题描述】:

我目前正在从事一个大学项目,我将创建一个搭便车远足移动应用程序。我希望在前端使用 phonegap 和 Javascript,并使用 laravel 作为我的 RESTFUL API。我查看了他的 Google 地图 API 文档,但我仍然没有看到 Laravel 的插件,它允许 GPS 路线详细信息存储在 laravel 的后端。
我认为司机和搭便车者之间的路线映射需要在服务器上完成,因为所有路线(旅程)的详细信息都需要存储和搜索。
有没有人从事过类似的搭便车远足项目,您将如何检查搭便车者的路线是否与驾驶员的路线匹配。当然这个映射必须在服务器上完成,是否有任何 Laravel 的 API 支持这个?

【问题讨论】:

    标签: javascript laravel google-maps-api-3 gps


    【解决方案1】:

    我对您的服务如何运作的解释是,搭便车的徒步旅行者和司机都会说明他们当前的位置和预定的目的地,搭便车的徒步旅行者将能够根据匹配的路线/目的地请求乘车(这是一个非常酷的想法实际上)。

    基于这种解释,我可能会采取以下方式来实现它。


    1。创建旅程

    Journey 模型将是用户希望进行的旅程。它将由许多 Waypoint 模型组成(至少 2 个,最少是起点和终点)。

    JourneyWaypoint 之间存在一对多关系。

    用户创建了一个Journey,您使用Google Maps Directions API 为其存储Waypoints。

    2。定期更新用户的位置

    用户最终会在航路点之间移动。当他们这样做时,您想知道他们在哪里,以便您可以更新他们的位置,以便能够在活跃用户的地图上准确地表示他们(我想您会有一个,显示各种Driver 的位置s 和Hitchhikers,类似于优步)。

    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 来说必须相同,因此可能是航点对象的哈希值,或者您可以使用 API 返回的place_id

    您还需要确保您没有与您已经通过的航路点匹配(因此remainingWaypoints()where('passed', 0)

    • 预计司机 X 将在 8 分钟后到达航路点 C,所以我决定等他们(或者我可以通过应用程序请求搭车)

    所有这些都应该是您服务的一个不错的起点。我非常喜欢这个主意——祝你好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-01
      • 1970-01-01
      • 2011-05-22
      • 1970-01-01
      • 2017-03-03
      • 1970-01-01
      • 2016-11-14
      相关资源
      最近更新 更多