请建议最有效的方法来实现不同的用户在地图上相互跟踪,这样每个用户都可以看到其他人当前的位置,他们可以看到他的。 例如:如果一个用户移动,其他用户立即看到他的新位置,反之亦然。如果用户移动并且新用户出现在他附近,则会跟踪他们。 我想用Parse作为后端。
我尝试了在didUpdateUserLocation
上保存新位置然后在后台运行查询的方法,配置为myQuery.whereKey("location", nearGeoPoint: currentGeoPoint, withinKilometers: 0.5)
它有效,但显然使用了大量带宽,因为即使用户位置的微小变化也会触发对Parse的查询(我看到iPhone状态栏上的互联网活动指示器一直在工作)。 所以我觉得它可以更有效率。
我应该使用推送通知吗? 如果是这样,一般的实施是什么?
非常感谢!
答案 0 :(得分:1)
如果您想实时监控位置变化,那么这当然需要与远程服务器进行大量的交互。虽然Parse可能是或可能不是此任务的良好后端,但您应该记住,如果您使用的是免费计划,则每秒有30个API请求限制(在这种情况下可能很容易超出此限制)你有多个用户)。
限制对重要位置更改的更新可能是合理的妥协,如documentation中所述。在这里,当用户移动约500米时,您将获得一个新位置,但当您想亲自跟随用户时,这当然可能是一个缺点。
使用推送通知向其他用户通知用户的位置更改可能更有效:
使用1,即使您不在移动中,您仍然可以从其他用户那里获得更新。请注意,这些请求是针对设备计算的,而不是针对Parse的。即Parse包括在请求限制中发送推送通知。