【发布时间】:2019-02-13 19:50:15
【问题描述】:
我有带有 CLLocationCoordinate2D 数组的 mapView。我使用这些位置通过MKPolyline 在我的mapView 上画线。现在我想将它存储为 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...
}
}
}
如何在此图像上添加叠加层?或者也许还有其他方法可以解决这个问题。
【问题讨论】:
标签: ios swift mapkit mkmapsnapshotter