3

情况如下:我使用自定义注释在地图上显示图像。一切正常,但我想通过调整 AnnotationView 的大小来改进它,以便它在地图缩小时缩小。我想这样做是因为,显然,更多的注释会填满屏幕并且需要缩小,这样它们就不会相互重叠太多,用户可以看到更多的注释。(当然,我想在地图再次放大时放大AnnotationViews)。

每当调用 regionDidChangeAnimated 时,我通过从地图中删除所有注释并再次添加它们来实现这一点。然而,这些图像是从互联网上加载的,因此再次下载图像(因为注释已被删除)似乎没有意义。

我希望我已经很好地解释了情况,并希望将来为 SO 做出贡献。

提前致谢。

PS 我正在使用 iOS 4.0 进行开发

4

2 回答 2

1

由于您使用的是 iOS 4.0,我建议使用符合 MKOverlay 协议的类而不是 MKAnnotationView。叠加层随地图缩放,并将适当缩放。您可能可以使用 1 个叠加层来处理所有注释。在http://developer.apple.com上查看 Apple 在 2010 年 WWDC 会谈中提供的 HazardMap 演示

或者,您可以使用类似 k 最近邻算法的方法对每个缩放比例的注释进行分组。但是,如果您有很多注释,这可能会有点慢。我用数千个注释尝试过一次,但不喜欢所招致的性能损失。不过,我认为 < 1000 个注释可能使用这种方法具有不错的性能。

于 2010-12-14T06:18:32.967 回答
1

听起来您已经走在正确的道路上,唯一真正的问题是下载图像。当您收到它们并在显示它们之前先查看它们时,是否有任何特殊原因无法通过将它们写入文档目录(或缓存目录,如果您希望它们在应用程序退出时继续运行)来缓存它们?

于 2010-12-14T06:31:40.010 回答