ios - 如何设置 GMSURLTileLayer 动画

标签 ios swift google-maps core-animation

我有一个包含最近 10 个纪元的数组。
我想用这些纪元创建一个动画 GMSURLTileLayer。

I tried to integrate with for loop but it is not working.

这是我的代码:

let epochs = [10, 20, 30, 40, 50]

private func configureRadarForGoogle(epoch: Int) {
    UIView.animate(withDuration: 1.0) {
        let url: GMSTileURLConstructor = {(x, y, zoom) in
            let urltemplate = "https://tilecache.rainviewer.com/v2/radar/\(epoch)/512/\(zoom)/\(x)/\(y)/2/1_1.png"
            return URL(string: urltemplate)
        }
        let layer = GMSURLTileLayer(urlConstructor: url)
        layer.zIndex = 5
        layer.map = self.mapView
    }
}

private func startAnimation() {
    for epoch in self.epochs {
        sleep(1)
        configureRadarForGoogle(epoch: epoch)
    }
}

有人知道更好的解决方案吗?非常感谢。

最佳答案

我认为你可以使用GMSMarkerLayer ,它是 GMSOverlayLayer 的子类,可在每个标记的基础上使用,允许对其关联的多个属性进行动画 GMSMarker

现在,对于 Animate,您可以计算点并将它们添加到 2 个单独的数组中,一个用于纬度值 (y),一个用于经度 (x),然后使用 CAKeyFrameAnimation 中的 value 属性进行动画处理,如所述 here

关于ios - 如何设置 GMSURLTileLayer 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58146011/

相关文章:

ios - 当 UITableView 滚动返回错误的 IndexPath.Row 值时

javascript - 在苹果上的 map 内滚动的 Div

swift - 滚动tableview重置水平 ScrollView 页面控件

javascript - 如何将 Rails 数据传递给 JavaScript?

Java安装错误: INSTALL_FAILED_MISSING_SHARED_LIBRARY maps

ios - 如何使用 RxSwift 观察 UITextField 中的文本变化?

ios - 自定义栏按钮项目图像框架太宽

ios - 导航栏标题字体不变

ios - CloudKit 处理 ChangeTokenExpired 错误

ios - 在 Xcode 11.6 中找不到 AppTrackingTransparency 模块