首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS SDK -在任何显示的地图范围显示#最重要的POI

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

Stack Overflow用户
提问于 2011-04-17 08:42:24
回答 1查看 969关注 0票数 0

我有一个数据结构,其中包括:

  • 显示POI重要性的NSNumber (兴趣点)
  • 包含POI坐标的CLLocation

假设我能够按重要性排序,并且每个POI都有一个独特的重要因素,那么在我的MKMapView中显示区域内的POI中,获得子数组的最佳方法是什么?

简单地检查每个POI似乎效率低下,因为我可能有几千个POI,我想在每次缩放级别更改时重复这个过程(因此,在任何显示的区域,我只显示#最重要的)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-17 09:22:14

我猜你要找的是:

代码语言:javascript
复制
- (NSSet *)annotationsInMapRect:(MKMapRect)mapRect

引用苹果文档

此方法提供了一种检索映射特定部分中的注释对象的快速方法。这个方法比自己对注释属性中的对象进行线性搜索要快得多。

请注意,它只在iOS 4.2及更高版本中可用,恐怕在以前的iOS版本中,除了自定义代码之外,没有其他解决方案。

关于您的评论的编辑:我猜对于几千个注释来说,上面的方法应该可以做到,MKAnnotation是一个轻量级的协议,通过对坐标的过滤扫描数组应该是可以的。但是请注意,不要添加数千个MKAnnotationView,这在iPhone 4上已经实现了,但是您几乎不能滚动地图:)

那么我建议:

  1. 使用该方法,快速编写代码,简单,然后在设备上进行一些性能测试。
  2. 如果表演不够..。或者你必须支持先进的iOS版本,没有魔法,写你自己的代码。(应该没有那么难,有一些转换区域的实用方法等等)

关于内存,嘿,这些设备可以轻松地为您的应用程序提供至少64 by的空闲内存,如果没有这些内存,就会杀死一些进程,不要被几个K的注释吓到了!只需处理内存泄漏,特别是在这样密集的过程中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5692511

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档