ios - 如何在 MapKit 中获取可见的叠加层? (即来自 Mapkit View 的 MKOverlay/MKOverlayRenderer)

标签 ios mkmapview mapkit mkoverlay mkoverlaypathrenderer

如何从 MapkitView 获取当前可见叠加层的列表(数组)?

背景 - 例如,我想在我的 mapkitview 上显示指向某些覆盖类型中心的方向箭头,但是如何获得可见的箭头?我看似乎没有办法做到这一点?那么我是否需要遍历所有覆盖层(实际上约为 8000 个)并自行检查以查看屏幕上会显示什么?如果 MapKit 已经有效地完成了这一点,作为决定在给定时间需要显示哪些覆盖层的一部分,这似乎是一种浪费。

最佳答案

我一直在修补一些类似的问题,我能想到的最有效的方法是将叠加层也添加为注释,因为 MKOverlay 实现了 MKAnnotation。然后您就可以对当前显示的 mapRect 使用 annotationsInMapRect。然而,这也会返回任何常规 MKAnnotations,并且只使用计算出的叠加中间部分。仅获取叠加层的唯一方法(据我所知)是遍历每个叠加层并使用:

-(BOOL)intersectsMapRect:(MKMapRect)mapRect;

在当前可见的 mapRect 上。 如果您找到另一种方法,我会很高兴听到!

关于ios - 如何在 MapKit 中获取可见的叠加层? (即来自 Mapkit View 的 MKOverlay/MKOverlayRenderer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37433336/

相关文章:

ios - 如何检查 locationManager 是否更新了当前位置?

ios - MapKit 和自定义类

iphone - 为什么在应用程序 :didFinishLaunchingWithOptions: causing an error? 中显示 UIAlertView

ios - 在 UICollectionViewCell 中引用 UITableView

ios - 使用当前位置缩放 MapView 的问题

iphone - 关于Apple的KMLViewer placemarkDescription and annotation subtitle

c# - iOS 只能运行用 C# 编写的网站吗?

ios - 如何在协议(protocol)中的可选方法中将枚举作为参数传递

swift - 将 url 从标记传递到 Controller

swift - 我怎么知道 map View 上是否已经有注释