如何为GMSURLTileLayer添加动画效果

3

我有一个包含最近10个时间戳的数组。
我想要使用这些时间戳创建一个GMSURLTileLayer动画。

我尝试使用for循环来集成,但是没有成功。

这是我的代码:

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)
    }
}

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

1个回答

0

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

现在,要进行动画处理,您可以计算这些点并将它们添加到两个单独的数组中,一个用于纬度值(y),另一个用于经度(x),然后使用CAKeyFrameAnimation中的values属性进行动画处理,如此处所述。


谢谢您的回复,我找不到如何将GMSURLTileLayer转换为GMSMarkerLayer。我需要从服务器获取{x} {y}和{z}的瓦片。我还能进行转换吗? - sametbilgi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接