我想为我的MKAnnotations
. 目前,当我尝试根据距离标准过滤它们时,速度非常慢(3-4k 个位置,目前使用简单的双精度非常慢for
......)。
我想创建MKAnnotations
, 的集群来决定它是否靠近另一个。此外,这些位置在某种程度上是(创建)顺序,并且需要“上一个”/“下一个”功能来“跳转”(这不是必须的)。我已经阅读了kd-tree
和r-tree
结构,它们似乎都满足过滤/聚类的快速距离/邻居获取选项,但我不确定哪个最适合我,或者是否还有其他选项。我应该使用什么算法/数据结构?
更新:我将这些位置存储在核心数据数据库中,它们代表一条路径。当地图打开时,它们被提取到一个数组中,然后我只使用该数组进行距离计算和注释创建。当用户移动/缩放地图时,我会遍历它们并决定需要在地图上更改哪些内容,因此整个内容都是静态的。据我了解,如果我使用一棵树,我可以将位置存储在那里,当发生缩放/移动时,我只需搜索它并获取新区域中的位置。这是真的 ?
即使在动态情况下,当我可以向该数组添加新位置时,它也将是一次插入,并且很少发生。