MapKit 覆盖以将平面图添加到地图
Posted
技术标签:
【中文标题】MapKit 覆盖以将平面图添加到地图【英文标题】:MapKit overlays to add floor plans to map 【发布时间】:2014-10-06 06:51:00 【问题描述】:我正在尝试向 ios MapKit 添加叠加层以显示平面图。但是,我不确定这样做的最佳方法。如果我使用 MKOverlay 添加平面图,是否会延迟加载平面图,或者我是否需要找出正在显示地图的哪一部分并在之后更新叠加层?我还研究了使用 MKTileOverlay,因为它使用延迟加载,但我的印象是它应该用于完全覆盖地图,而不仅仅是添加到现有地图。这是正确的吗?
【问题讨论】:
【参考方案1】:是的,你是对的MKTileOverlay
可以用瓷砖覆盖整个地图,是的,它使用延迟加载。
如果您不愿意替换地图的原生外观和填充,请使用MKOverlay
。 MKOverlay
也可以实现延迟加载。
注意:MKTileOverlay
不会删除您已经存在的MKAnnotations
和MKOverlay
。
【讨论】:
谢谢。 MKOverlay 是否自动使用延迟加载,还是我需要以特殊方式对其进行配置?另外,我的叠加层应该添加到一个 MKOverlayView,还是每个叠加层单独的 MKOverlayView? 对于MKOverlay
为延迟加载创建块或后台线程,不需要单独创建,所有覆盖将在同一个MKOverlayView
上管理。【参考方案2】:
MKOverlay
是一个协议,而不是一个类。从 iOS 7 开始,您需要 MKTileOverlay
。根据当前显示的地图部分,事物会延迟加载。
您可能会发现这可以作为有关如何对图块进行编号和组织的参考:
https://www.mapbox.com/foundations/how-web-maps-work/
至于覆盖苹果地图,默认会出现这种情况,但是你也可以调整MKOverlayLevel
用来放置在苹果的底图和标签层之间,或者如果你想禁用苹果的地图你可以使用canReplaceMapContent = YES
完全。
【讨论】:
以上是关于MapKit 覆盖以将平面图添加到地图的主要内容,如果未能解决你的问题,请参考以下文章