apKit
class ViewController: UIViewController {
@IBOutlet weak var mapView: MKMapView!
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - 地图截图
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
// 1. 创建截图附加选项 - option
let option: MKMapSnapshotOptions = MKMapSnapshotOptions()
// 2. 设置截图附加选项 - option
option.mapRect = mapView.visibleMapRect // 设置地图区域
option.region = mapView.region // 设置截图区域(在地图上的区域,作用在地图)
option.mapType = .standard // 截图的地图类型
option.showsPointsOfInterest = true // 是否显示POI
option.showsBuildings = true // 是否显示建筑物
// option.size = CGSize(width: 100, height: 100)// 设置截图后的图片大小(作用在输出图像)
option.size = self.mapView.frame.size // 设置截图后的图片大小(作用在输出图像)
option.scale = UIScreen.main.scale // 设置截图后的图片比例(默认是屏幕比例, 作用在输出图像)
// 3. 创建截图对象
let snapShoter = MKMapSnapshotter(options: option)
// 4. 开始截图
snapShoter.start { (shot:MKMapSnapshot?, error:Error?) in
if error == nil {
// 获取到截图图像
let image = shot?.image
// 将截图转换成为NSData数据
let data = UIImagePNGRepresentation(image!)
// 将图像保存到指定路径
try? data?.write(to: URL(fileURLWithPath: "/Users/TD/Desktop/test.png"), options: [.atomic])
}else {
print("截图错误")
}
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
本文源码 Demo 详见 Github
https://github.com/shorfng/iOS_7.0_Device-Tools
作者:蓝田(Loto)
【作品发布平台】
① 简书
② 博客园
③ Gitbook(如果觉得文章太长,请阅读此平台发布的文章)
【代码托管平台】
Github
【如有疑问,请通过以下方式交流】
① 评论区回复
② 发送邮件
至 shorfng@126.com
本文版权归作者和本网站共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,谢谢合作。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
支付宝扫一扫 向我打赏
你也可以微信 向我打赏