我正在尝试在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()之类的函数来动画图像的功能,所以我想知道这是否可以导致GIF可以在GMSGroundOverlay上显示的解决方案。我以为我可以自己将自己的UIImageView添加到叠加层。然而,我觉得我已经走到了死胡同,因为我无法弄清楚GMSGroundOverlay的UIimage, icon 是如何首先添加到叠加层的。我不确定如何将NIImage添加到NSObject,这就是GMSGroundOverlay最终的子类化。
我真的很感激关于在地图上设置GIF动画的一些建议,理想情况下使用仅使用单个GIF文件的GMSGroundOverlay,并且当用户移动地图时,使用GIF缩放并在屏幕上正确移动。谢谢!