如何在swift中将地图的特定部分转换为图像?

时间:2016-09-16 20:16:19

标签: ios swift dictionary

如果我正在使用MapView,并且想要将视图转换为图像,其中每个角都是地图点(地图缩放默认),我该怎么做? (不要求代码,只是一些方向)。我不想保存图像,只需在计算机视觉中使用图像矩阵,所有这些都可以在同一个程序中快速,动态地进行。我不能依赖截图。

希望这也有助于其他人 - 真的到处寻找但没有运气。

干杯

1 个答案:

答案 0 :(得分:3)

MKMapSnapshotter是您正在寻找的。这是Swift中的一个例子:

let options = MKMapSnapshotOptions()
options.region = mapView.region
options.size = mapView.frame.size
options.scale = UIScreen.mainScreen().scale

let fileURL = NSURL(fileURLWithPath: "path/to/snapshot.png")

let snapshotter = MKMapSnapshotter(options: options)
snapshotter.startWithCompletionHandler { snapshot, error in
    guard let snapshot = snapshot else {
        print("Snapshot error: \(error)")
        return
    }

    let data = UIImagePNGRepresentation(snapshot.image)
    data?.writeToURL(fileURL, atomically: true)
}

如果您有兴趣阅读有关MKMapSnapshotter的更多信息,请查看this NSHipster帖子。在帖子中有一个如何在图像上绘制注释的示例,我以前在应用程序中使用它并且效果很好。

希望有所帮助!