【问题标题】:Is this the right procedure for sharing location between 2 users?这是在 2 个用户之间共享位置的正确程序吗?
【发布时间】:2018-11-14 14:24:08
【问题描述】:

1) 使用 Location Services API 获取用户 A 和用户 B 的位置。

2) 每次位置发生变化时,将用户 A 和用户 B 的位置上传到数据库。

3) 在指定的时间间隔 - 将用户 A 和用户 B 分别检索到用户 B 和用户 A 的电话(这样每个用户都有另一个用户的位置)。

4) 在屏幕上显示用户的位置(经度、纬度等)。

或者,有更有效的方法吗?而不是使用时间间隔,也许是从数​​据库中获取位置?或者根本不使用数据库?我发现甚至很难从一个策略开始,请指出我开始的地方

【问题讨论】:

    标签: android


    【解决方案1】:

    这取决于您在数据库中想要什么。如果只是需要,我会使用 Firebase,因为您可以将其用作实时数据库,因此任何更改都会发生在两个用户身上。

    如果这个“位置共享”需要是临时的,您可以在 firebase db 中为其创建节点,例如 userId -> location -> userLat, userLng。将位置更新推送到用户的位置节点。订阅另一个用户的节点并监听变化。位置共享完成后,您可以删除节点以清除不需要的数据。

    更多关于 firebase:https://firebase.google.com/docs/database/

    【讨论】:

    • 我只是看了看,所以你说我可以有一个唯一的 userId 节点,每次用户位置更改时都会替换它?这样我就不会为同一用户提供无尽的节点,对吗?我的意思是,每次用户移动时,它只会替换该特定节点的 userLat、userLng?还是删除旧节点并创建一个新节点?
    • @pileup userLat, userLng 被替换。所以每个用户只有一个 userLat 和 userLng
    • 一般来说——如果你有值(不是节点),它会在你每次发送值时被替换。但是,如果它是您的节点(它不是最新值,因此被视为节点),您可以拥有更多节点,因为这些节点不会被替换 - 您可以拥有更多节点。为了您的事业,您需要值,而不是节点,这些将被替换。但是,如果您需要查找附近用户之类的东西,您可以使用节点和一些 lat-lng 扇区并将 userIds 推送到扇区中,这样您就不必搜索和比较范围与其他所有用户。我们有它的算法,如果你需要它给我留言;)
    猜你喜欢
    • 1970-01-01
    • 2019-02-02
    • 2014-09-30
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多