在iPhone的MapKit中显示POI的最佳做法?

时间:2010-04-11 03:07:33

标签: iphone search annotations mapkit

假设我有一个POI数据库及其各自的坐标(经度和纬度)。将POI显示为围绕用户当前位置的注释的“标准”方式是什么?详细说明:

  • 给定缩放级别,我想我必须在数据库中搜索到当前位置的距离的所有POI<某个阈值,然后为它们创建注释。或者有更聪明的方法吗?
  • 如果用户放大/缩小,移动地图......我需要重新整理一下吗?
  • MapKit似乎有一种缓存/重用注释的机制。我应该立即创建很多它们并让MapKit决定在可见区域发生变化时要渲染的内容吗?我想这会使转换更顺畅,但也会消耗更多内存。您对此有何体验?

感谢。

1 个答案:

答案 0 :(得分:1)

实际上,依靠当前位置和POI之间的距离不是正确的方法:评估距离需要时间,您最好只依靠地图显示的区域(属性region)并检查您的哪些POI包含在此区域中。

放大/缩小时,区域会发生变化,因此您可能需要重做。

请在此处查看我的回答: MKMapView loading all annotation views at once (including those that are outside the current rect)

这家伙正在尝试使用注释缓存,我的回答可能对您有所帮助。

要检查您的POI是否是显示的区域,我发布了一段可能有用的代码: iPhone Development - Is Pin Annotation in a viewable Map Region