根据MapKit缩放级别调整自定义MKAnnotationView的大小

时间:2010-11-29 01:56:20

标签: iphone mapkit mkannotation

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

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

我希望我已经很好地解释了这一情况,并希望将来能够为SO作出贡献。

提前致谢。

P.S。我正在开发iOS 4.0

2 个答案:

答案 0 :(得分:1)

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

的HazardMap演示

或者,您可以使用类似k近邻算法的内容来按缩放比例对注释进行分组。但是,如果你有很多注释,那可能会很慢。我用几千个注释尝试了一次,并且不喜欢发生的性能损失。我认为<但是,使用此方法,1000个注释可能具有不错的性能。

答案 1 :(得分:1)

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