繁体   English   中英

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

[英]Resizing Custom MKAnnotationView According to MapKit Zoom Level

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

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

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

提前致谢。

PS我正在开发iOS 4.0

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM