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

标签 iphone mapkit mkannotation

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

我通过从 map 中删除所有注释并在调用 RegionDidChangeAnimated 时将它们重新添加回来来实现此目的。然而,这些图像是从互联网加载的,因此再次下载图像(因为注释已被删除)似乎没有意义。

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

提前致谢。

附注我正在使用 iOS 4.0 进行开发

最佳答案

由于您使用的是 iOS 4.0,我建议使用符合 MKOverlay 协议(protocol)的类,而不是 MKAnnotationView。与 map 叠加缩放并适当缩放。您或许可以使用 1 个覆盖层来处理所有注释。查看 Apple 在 2010 年 WWDC 演讲中提供的 HazardMap 演示 http://developer.apple.com

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

关于iphone - 根据 MapKit 缩放级别调整自定义 MKAnnotationView 的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300314/

相关文章:

ios - 苹果商店因 App Icon 被拒绝

iphone - gdata youtube 查询问题

swift - map View 上的倒圆圈叠加(MapKit、MKOverlay、Swift)

ios - 平移时跟踪 MKMapView centerCoordinate

iphone - 将记录保存到 coreData 需要很长时间,我怎样才能更快地插入它们?

cocoa - MKMapView 与其区域属性未对齐

objective-c - map 预览图

ios - 错误 "Property ' 在类型 'MyAnnotation' 的对象上找不到标题“

iOS 7 升级使得注释标注配件在点击后保持打开状态

iphone - 使用stretchableImageWithLeftCapWidth调整图像大小