Swift 获取地图中显示的可见注释/集群
Posted
技术标签:
【中文标题】Swift 获取地图中显示的可见注释/集群【英文标题】:Swift obtain visible annotations/clusters shown in map 【发布时间】:2018-07-02 22:45:52 【问题描述】:我目前正在开发一个应用程序,我将用户图像作为注释加载到地图上。目前,我使用 API 在 viewForAnnotation 中为每个图像注释加载图像,如果用户有超过几千张照片,则每次都会调用此图像加载函数并显着降低性能。
无论如何,我是否只能获取当前地图上显示的注释,即只有用户可见的注释和注释集群? Apple 使用 visibleMapRect 的注释 API(in:) 基本上返回每个注释,而我只想要高级或当前显示的注释。例如,在下面链接的图像中,出现了 2 个注释,但这 2 个注释是数百个注释的集群。有没有办法只为这两个而不是每个注释加载图像?
【问题讨论】:
欢迎来到 ***。请向我们展示您的代码。 嘿,你有没有办法解决它?我遇到了完全相同的问题,我无法将下载图像放在 MKAnnotationView 的背景中,因为地图的性能下降了。 【参考方案1】:你可以这样检查:
func mapView(_ mapView: MKMapView, viewFor annotation: MKAnnotation) -> MKAnnotationView?
if annotation is MKClusterAnnotation
// Need to load images
...
【讨论】:
问题是地图上可能存在集群注释和普通注释的组合,那么有没有办法获得所有可见的注释(地图上当前显示的所有注释)?以上是关于Swift 获取地图中显示的可见注释/集群的主要内容,如果未能解决你的问题,请参考以下文章
MKAnnotations 未显示在地图上 iOS 9 / Swift 2.0