当用户看不到地图时如何从 iOS 版 Google 地图制作图像

Rob*_*cci 5 google-maps ios google-maps-sdk-ios

我正在使用 iOS 版 Google 地图,我需要创建地图快照。我知道该怎么做。

我不能做的是在幕后做。我无法创建用户看不到的地图,设置边界和标记,然后对其进行拍照。图片最终一片空白。

我使用的代码(Swift)本质上是

var mapView = GMSMapView(frame: CGRect(x: 0, y: 0, width: 300, height: 300));
Run Code Online (Sandbox Code Playgroud)

我指向地图然后等待地图图块加载然后

UIGraphicsBeginImageContext(mapView.frame.size);
mapView.layer.renderInContext(UIGraphicsGetCurrentContext());
var screenShotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
Run Code Online (Sandbox Code Playgroud)

但是我只在左下角看到一个带有 Google 徽标的灰色框。

Rob*_*cci 1

以下对另一个问题的回答表明,iOS 版 Google 地图无法实现我想要的功能。

/sf/answers/1839538431/

它建议将 Google 地图的静态地图网络服务作为替代方案,但我使用带有自定义图标的标记,而静态地图要求您通过某些 URL 公开提供这些标记,而我无法轻松做到这一点。

最后我破解了它。我弹出一个大灰色屏幕,上面显示“请稍候”消息,在它后面有一个 Google 地图,我可以操作它并截取屏幕截图,然后删除地图和灰色屏幕并继续。

啊。

而且我什至不知道地图何时加载完毕,所以我猜测 5 秒通常就足够了。

叹。