【问题标题】:MapKit overlays to add floor plans to mapMapKit 覆盖以将平面图添加到地图
【发布时间】:2014-10-06 06:51:00
【问题描述】:

我正在尝试向 iOS MapKit 添加叠加层以显示平面图。但是,我不确定这样做的最佳方法。如果我使用 MKOverlay 添加平面图,是否会延迟加载平面图,或者我是否需要找出正在显示地图的哪一部分并在之后更新叠加层?我还研究了使用 MKTileOverlay,因为它使用延迟加载,但我的印象是它应该用于完全覆盖地图,而不仅仅是添加到现有地图。这是正确的吗?

【问题讨论】:

    标签: ios mapkit mkoverlay mktileoverlay


    【解决方案1】:

    是的,你是对的MKTileOverlay 可以用瓷砖覆盖整个地图,是的,它使用延迟加载。

    如果您不愿意替换地图的原生外观和填充,请使用MKOverlayMKOverlay也可以实现延迟加载。

    注意:MKTileOverlay 不会删除您已经存在的MKAnnotationsMKOverlay

    【讨论】:

    • 谢谢。 MKOverlay 是否自动使用延迟加载,还是我需要以特殊方式对其进行配置?另外,我的叠加层应该添加到一个 MKOverlayView,还是每个叠加层单独的 MKOverlayView?
    • 对于MKOverlay 为延迟加载创建块或后台线程,不需要单独创建,所有覆盖将在同一个MKOverlayView 上管理。
    【解决方案2】:

    MKOverlay 是一个协议,而不是一个类。从 iOS 7 开始,您需要 MKTileOverlay。根据当前显示的地图部分,事物会延迟加载。

    您可能会发现这可以作为有关如何对图块进行编号和组织的参考:

    https://www.mapbox.com/foundations/how-web-maps-work/

    至于覆盖苹果地图,默认会出现这种情况,但是你也可以调整MKOverlayLevel用来放置在苹果的底图和标签层之间,或者如果你想禁用苹果的地图你可以使用canReplaceMapContent = YES完全。

    【讨论】:

      猜你喜欢
      • 2014-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-20
      相关资源
      最近更新 更多