我有带有数组的 mapView CLLocationCoordinate2D
。我使用这些位置在我的 mapView 上画线MKPolyline
。现在我想将它存储为 UIimage。我发现存在类MKMapSnapshotter
,但不幸的是我无法在其上绘制叠加层“Snapshotter 对象不会捕获您的应用创建的任何叠加层或注释的视觉表示。” 所以我只得到空白地图图像。有什么方法可以用我的叠加层获取图像吗?
private func generateImageFromMap() {
let mapSnapshotterOptions = MKMapSnapshotter.Options()
guard let region = mapRegion() else { return }
mapSnapshotterOptions.region = region
mapSnapshotterOptions.size = CGSize(width: 200, height: 200)
mapSnapshotterOptions.showsBuildings = false
mapSnapshotterOptions.showsPointsOfInterest = false
let snapShotter = MKMapSnapshotter(options: mapSnapshotterOptions)
snapShotter.start() { snapshot, error in
guard let snapshot = snapshot else {
//do something with image ....
let mapImage = snapshot...
}
}
}
如何在此图像上放置叠加层?或者也许还有其他方法可以解决这个问题。