查找距我当前位置 100 米范围内的已保存位置
Posted
技术标签:
【中文标题】查找距我当前位置 100 米范围内的已保存位置【英文标题】:Finding saved locations that are within 100 meters of my current location 【发布时间】:2015-03-27 20:20:31 【问题描述】:对于我的 iPhone 应用,我在变量 userLocation
中获得了用户的位置,并且我正在使用 CLLocationManager didUpdateLocations
方法不断更新它。
在我的解析数据库中,我存储了数千个位置。
我的问题是什么是最有效的方法来持续比较/判断这些解析数据库位置是否在用户当前位置的 100 米范围内? p>
我目前的方法是每次用户位置发生变化时遍历数据库位置数组;计算与当前位置的距离并判断距离是否小于 100 米,但是随着位置不断变化,这将对处理器和电池造成沉重负担。有什么建议吗?
【问题讨论】:
我不知道这是否是最有效的,但我是这样做的:***.com/questions/29267438/… 也许您应该将用户的位置从设备发送到 Parse,并告诉它针对数据运行查询(请参阅***.com/a/24879278/467105),而不是将所有其他位置数据带到设备。跟踪上次查询完成的时间,只有当用户的位置变化 X 米或上一次查询超过 N 分钟时才再次调用它。 【参考方案1】:你可以结合 Anna 的想法(见评论),根据用户的移动速度不断改变 X 或 N 值。
如果用户正在走路,那么您只需执行下一个查询更长的时间。但如果用户使用自行车,例如,下一个查询应该更快。
【讨论】:
【参考方案2】:我会发表评论,但没有代表。无论如何,您可以将位置分解为树型结构,以在每次迭代中删除一半的位置 - 根据您的位置,您可以使用军械网格正方形或如果没有,一些小一点的东西。这样,您只搜索相当接近的位置子集..?例如Quad Trees
【讨论】:
以上是关于查找距我当前位置 100 米范围内的已保存位置的主要内容,如果未能解决你的问题,请参考以下文章