我有一个数据结构,其中包括:
NSNumber (兴趣点)CLLocation。假设我能够按重要性排序,并且每个POI都有一个独特的重要因素,那么在我的MKMapView中显示区域内的POI中,获得子数组的最佳方法是什么?
简单地检查每个POI似乎效率低下,因为我可能有几千个POI,我想在每次缩放级别更改时重复这个过程(因此,在任何显示的区域,我只显示#最重要的)。
发布于 2011-04-17 09:22:14
我猜你要找的是:
- (NSSet *)annotationsInMapRect:(MKMapRect)mapRect引用苹果文档:
此方法提供了一种检索映射特定部分中的注释对象的快速方法。这个方法比自己对注释属性中的对象进行线性搜索要快得多。
请注意,它只在iOS 4.2及更高版本中可用,恐怕在以前的iOS版本中,除了自定义代码之外,没有其他解决方案。
关于您的评论的编辑:我猜对于几千个注释来说,上面的方法应该可以做到,MKAnnotation是一个轻量级的协议,通过对坐标的过滤扫描数组应该是可以的。但是请注意,不要添加数千个MKAnnotationView,这在iPhone 4上已经实现了,但是您几乎不能滚动地图:)
那么我建议:
关于内存,嘿,这些设备可以轻松地为您的应用程序提供至少64 by的空闲内存,如果没有这些内存,就会杀死一些进程,不要被几个K的注释吓到了!只需处理内存泄漏,特别是在这样密集的过程中。
https://stackoverflow.com/questions/5692511
复制相似问题