gpt4 book ai didi

ios - 将 GMSPanoramaView 转换为 UIImage?

转载 作者:行者123 更新时间:2023-11-30 11:58:40 26 4
gpt4 key购买 nike

对于我的应用程序,我需要从 GPS 坐标获取 Google 街景图像。我知道如何从坐标获取全屏 GMSPanoramaView,但我最终需要它是 UIImage。

        let panoView = GMSPanoramaView(frame: .zero)
self.view = panoView
panoView.moveNearCoordinate(location.coordinate)
panoView.setAllGesturesEnabled(false)

// can this be converted to a UIImage?
var streetViewImage: UIImage?
streetViewImage = panoView

我看到其他人在 subview 中呈现了 GMSPanoramaView - 这是更好的选择吗?或者是否有其他方法可以从 Google 街景获取静态 UIImages

最佳答案

public extension GMSPanoramaView {

@objc public func toImage() -> UIImage {
UIGraphicsBeginImageContextWithOptions(bounds.size, false, UIScreen.main.scale)
drawHierarchy(in: self.bounds, afterScreenUpdates: true)
let image = UIGraphicsGetImageFromCurrentImageContext()!
UIGraphicsEndImageContext()
return image
}
}

上面的代码将会截取您的 View 的屏幕截图。要从网络加载正确的数据(而不是获得黑色屏幕截图),您需要实现 GMSPanoramaViewDelegate,可能在网络请求完成且图像可见时调用 panoramaView:didMoveToPanorama: 。然后您就可以调用 toImage() 并存储您的图像。

https://developers.google.com/maps/documentation/ios-sdk/reference/protocol_g_m_s_panorama_view_delegate-p

关于ios - 将 GMSPanoramaView 转换为 UIImage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47503198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com