首页 > 解决方案 > 仅在部分 MKMap 内容上使用 MKOverlay `canReplaceMapContent`

问题描述

我创建了一个叠加层,我想覆盖整个世界,除了应用程序所关注的特定区域。我将 MKPolygon 子类化如下:

class ReplacingPolygion:MKPolygon{
    override func canReplaceMapContent()->Bool{
        return true
    }
    override var boundingMapRect: MKMapRect { MKMapRect.world }
}

据我了解,这意味着我的叠加层将替换现有的地图内容并绘制在整个世界上。我已经用覆盖整个世界地图的坐标初始化了上面的类,除了内部多边形,它将我需要的区域从更大的覆盖中切出。因此,这会为除了我想要的区域之外的整个世界创建一个叠加层。

ReplacingPolygion(coordinates: worldPolygon!, count: worldPolygon!.count, interiorPolygons: [userPolygon])

问题是,因为我设置canReplaceMapContent()true不会在任何地方绘制地图,包括透明的内部多边形。

有没有办法强制MKMapView渲染上述区域中的瓷砖interiorPolygon

标签: mapkitmkmapviewmkoverlaymkpolygon

解决方案


推荐阅读