Rec*_*iwe 6 google-maps ios swift
我正在构建一个使用谷歌地图和大量叠加层的应用程序,似乎当我尝试加载大量叠加层时它会停止并为我提供“((null)) is false: Reached the max number of texture atlases ,不能分配更多。”
我只是通过这种方式将图像添加为叠加层:
...
if (image != nil) {
let image: CGImage = (image?.cgImage)!
let icon = UIImage(cgImage: image)
let overlay = GMSGroundOverlay(bounds: overlayBounds, icon: icon)
overlay.bearing = 0
overlay.map = map
overlay.zIndex = 10
self.overlays.append(overlay);
Run Code Online (Sandbox Code Playgroud)
有关如何解决此问题的任何建议?
问题似乎是您正在为每个标记/覆盖分配一个单独的 UIImage 实例。这意味着当您在 GMSMapView 实例上绘制标记时,每个标记都有一个单独的 UIImage。
如果您要使用同一图像创建多个标记,请为每个标记使用相同的 UIImage 实例。这有助于在显示许多标记时提高应用程序的性能。
简而言之,您需要限制附加的覆盖。您的图像是动态的还是静态的?如果是同一张图像,一个简单的解决方案是定义图像一次,然后在附加叠加层时添加对同一张图像的引用。如果图像是动态的,您可以将图像合并到代码中,然后仅在地图中使用一个叠加层。
| 归档时间: |
|
| 查看次数: |
2322 次 |
| 最近记录: |