iOS SDK-在任何显示的地图范围内显示#个最重要的POI

|| 我有一个数据结构,其中包含: 表示POI重要性的“ 0”(兴趣点) 包含POI坐标的
CLLocation
。 假设我能够按重要性对POI进行排序,并且每个POI具有唯一的重要性因子,那么在我的
MKMapView
中显示区域内的POI子数组的最佳方法是什么? 仅检查每个POI似乎效率低下,因为我可能有成千上万个POI,并且每次缩放级别更改时我都想重复此过程(因此,在任何显示的区域中,我仅显示#个最重要的POI)。     
已邀请:
我想您正在寻找的是:
- (NSSet *)annotationsInMapRect:(MKMapRect)mapRect
引用Apple文档:   此方法提供了一种快速的方法来检索地图特定部分中的注释对象。这种方法比您自己对注释属性中的对象进行线性搜索要快得多。 请注意,这仅在iOS 4.2和更高版本中可用,恐怕除了以前的iOS版本中的自定义代码,没有其他解决方案。 编辑关于您的评论:我的猜测是,对于数千个注释,上述方法应该可以解决问题,
MKAnnotation
是轻量级协议,通过按坐标过滤来扫描数组应该可以。但是要当心不要在iPhone 4上添加成千上万的
MKAnnotationView
,它已经做到了,但是您几乎无法滚动地图:) 那我建议: 使用该方法,可以快速,轻松地编写代码,然后在设备上进行一些性能测试 如果性能还不够...。或者您必须支持过时的iOS versios(毫无魔法),请编写自己的代码。 (不应该那么难,有转换区域等的实用方法) 关于内存,嘿,这些设备为您的应用轻松拥有至少64MB的可用内存,如果没有,它们会杀死某些进程,不要被几K个注释吓到!只需注意内存泄漏,尤其是在这种密集的过程中。     

要回复问题请先登录注册