[英]SWIFT How to obtain coordinate lat long from GoogleMaps GMSAutocomplete?
[英]how to write a function that takes coordinate(lat - long) and take snapshot from desired location with lookaround.snapshotter in Swift?
我剛開始在 Swift 編程,我是一個完全的初學者。 我想寫一個 function 或 class,通過接收坐標,如果 MKLookAround.request 中有照片,使用 MKLookAround.Snapshotter 保存所需位置的照片,但我不知道如何使用 mapkit 就緒類. 我不想用swiftUI,我只是想保存一些來自不同地方坐標的圖片。 在此處輸入圖像描述
您可以創建MKLookAroundSceneRequest
,獲取其scene
,然后將其提供給MKLookAroundSnapshotter
。
func snapshotImage(for coordinate: CLLocationCoordinate2D) async throws -> UIImage {
guard let scene = try await MKLookAroundSceneRequest(coordinate: coordinate).scene else {
throw LookaroundError.unableToCreateScene
}
let options = MKLookAroundSnapshotter.Options()
options.size = CGSize(width: 1000, height: 500)
return try await MKLookAroundSnapshotter(scene: scene, options: options).snapshot.image
}
使用此Error
object:
enum LookaroundError: Error {
case unableToCreateScene
}
有關詳細信息,請參閱 WWDC 2022 What's new in MapKit或查看MKLookAroundSnapshotter
在其示例項目中的使用。
如果您想將其寫入文件,請獲取 PNG ( pngData
) 或 JPG ( jpgData
) 表示並將其write
文件:
let image = try await snapshotImage(for: coordinate)
let url = try FileManager.default
.url(for: .applicationSupportDirectory, in: .userDomainMask, appropriateFor: nil, create: true)
.appending(component: "test.png")
try image.pngData()?.write(to: url)
或者,您可能希望向用戶展示一個 UI,用戶可以通過UIActivityViewController
指定他們想要對圖像執行的操作:
let share = UIActivityViewController(activityItems: [image], applicationActivities: nil)
self.present(share, animated: true)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.