【问题标题】:How to make an image from Google Maps for iOS when user doesn't see map当用户看不到地图时如何从 Google Maps for iOS 制作图像
【发布时间】:2015-03-04 19:25:34
【问题描述】:

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

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

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

var mapView = GMSMapView(frame: CGRect(x: 0, y: 0, width: 300, height: 300));

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

UIGraphicsBeginImageContext(mapView.frame.size);
mapView.layer.renderInContext(UIGraphicsGetCurrentContext());
var screenShotImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

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

【问题讨论】:

  • 不确定如何将其整合到 iOS 中,但您是否尝试过使用 static map
  • 看过静态地图,虽然这看起来通常是一个不错的选择,但在这种情况下我不能使用它。我需要带有自定义图标的标记。请参阅下面的答案。

标签: ios google-maps google-maps-sdk-ios


【解决方案1】:

以下对不同问题的回答表明,我想要的内容无法通过 iOS 版 Google 地图实现。

https://stackoverflow.com/a/26279120/1672356

它建议使用 Google 地图的静态地图网络服务作为替代方案,但我使用的是带有自定义图标的标记,而静态地图需要您通过某个 URL 公开这些内容,而我不能轻易做到这一点。

最后我破解了它。我弹出一个带有“请稍候”消息的灰色大屏幕,在它后面我有一个谷歌地图,我对其进行操作并截取屏幕截图,然后删除地图和灰色屏幕并继续。

呃。

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

叹息。

【讨论】:

  • 你可以设置 MapViewDelegate 来告诉你什么时候加载完成
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-18
  • 2019-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多