【问题标题】:Finding saved locations that are within 100 meters of my current location查找距我当前位置 100 米范围内的已保存位置
【发布时间】:2015-03-27 20:20:31
【问题描述】:

对于我的 iPhone 应用,我在变量 userLocation 中获得了用户的位置,并且我正在使用 CLLocationManager didUpdateLocations 方法不断更新它。

在我的解析数据库中,我存储了数千个位置。

我的问题是什么是最有效的方法来持续比较/判断这些解析数据库位置是否在用户当前位置的 100 米范围内? p>

我目前的方法是每次用户位置发生变化时遍历数据库位置数组;计算与当前位置的距离并判断距离是否小于 100 米,但是随着位置不断变化,这将对处理器和电池造成沉重负担。有什么建议吗?

【问题讨论】:

  • 我不知道这是否是最有效的,但我是这样做的:stackoverflow.com/questions/29267438/…
  • 也许您应该将用户的位置从设备发送到 Parse,并告诉它针对数据运行查询(请参阅stackoverflow.com/a/24879278/467105),而不是将所有其他位置数据带到设备。跟踪上次查询完成的时间,只有当用户的位置变化 X 米或上一次查询超过 N 分钟时才再次调用它。

标签: ios swift parse-platform core-location cllocationmanager


【解决方案1】:

你可以结合 Anna 的想法(见评论),根据用户的移动速度不断改变 X 或 N 值。

如果用户正在走路,那么您只需执行下一个查询更长的时间。但如果用户使用自行车,例如,下一个查询应该更快。

【讨论】:

    【解决方案2】:

    我会发表评论,但没有代表。无论如何,您可以将位置分解为树型结构,以在每次迭代中删除一半的位置 - 根据您的位置,您可以使用军械网格正方形或如果没有,一些小一点的东西。这样,您只搜索相当接近的位置子集..?例如Quad Trees

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      • 2017-05-15
      相关资源
      最近更新 更多