3

我正在尝试在 GMSMapView 的特定部分上显示动画 GIF,使用 GMSCoordinateBounds 指定地图的一部分以覆盖 GIF。

我选择使用 GMSGroundOverlay 是因为我希望在放大或缩小地图时图像能够正确缩放,并让图像保持固定在地图的一个地理部分。这似乎是完成这项任务的最佳工具。我发现 GMSMarkers 可以显示 GIF,但我还需要 GIF 能够随着地图的缩放而放大和缩小,而 GMSMarkers 似乎无法自己做到这一点。

目前,虽然我可以通过更改 GMSGroundOverlay 的图标属性来模拟动画,但我可以在图像之间切换,因为我正在使用 24 个下载的图像,但由于文件大小增加,这种解决方案并不理想。我尝试使用 UIImage 的 animatedImageWithImages:duration: 使用以下设置图标:

let icon = UIImage.animatedImageWithImages(centroidImagesAtLayer, duration: animationSpeed)
let bounds = GMSCoordinateBounds(coordinate: southWestBound, coordinate: northEastBound)
centroidOverlay = GMSGroundOverlay(bounds: bounds, icon: icon)

然而,这只显示了一个单一的静态图像。我发现 UIImageView 具有动画图像的功能,使用诸如 startAnimating() 之类的函数,所以我想知道这是否会导致可以在 GMSGroundOverlay 上显示 GIF 的解决方案。我想我可以自己将自己的 UIImageView 添加到叠加层中。但是,我觉得我已经走到了死胡同,因为我无法弄清楚 GMSGroundOverlay 的 UIimage icon是如何首先添加到叠加层中的。我不确定如何将 UIImage 添加到 NSObject,这就是 GMSGroundOverlay 最终的子类化。

我真的很感激一些关于在地图上制作 GIF 动画的建议,理想情况下使用 GMSGroundOverlay 仅使用单个 GIF 文件,并在用户移动地图时使 GIF 缩放并在屏幕上正确移动。谢谢!

4

0 回答 0