如何确定Google地图图块是否已加载

时间:2015-01-29 03:02:35

标签: ios google-maps swift

我在iOS应用程序中使用Google Maps API。在会话结束时,地图缩小并捕获屏幕截图。不幸的是,在拍摄屏幕截图之前,地图通常没有时间加载缩放曝光的所有图块。

我看到Apple的MKMapView有一个mapViewDidFinishLoadingMap代表。 Google API中是否提供了类似的内容?

3 个答案:

答案 0 :(得分:6)

Google Maps SDK for iOS有一个名为mapViewDidFinishTileRendering的方法,在地图完成渲染时调用该方法。

-(void)mapViewDidFinishTileRendering:(GMSMapView *)mapView{
    //TAKE THE SCREENSHOT HERE
}

另外,不要忘记设置代表。

答案 1 :(得分:2)

在Google Maps Javascript API中,您可以使用various UI events的事件监听器,例如tilesloaded事件。

但是,Google Maps iOS SDK没有任何事件监听器。您必须使用GMSMapViewDelegate委托方法来检测UI事件。对于您的情况,我认为mapView:idleAtCameraPosition:可能会对您有所帮助。

答案 2 :(得分:2)

iOS SDK有一个功能 mapViewSnapshotReady 你可以使用referansing protocol GMSMapViewDelegate

参考说明:

  

地图稳定时调用(加载图块,渲染标签,相机闲置)   和叠加对象已经渲染。

 func mapViewSnapshotReady(_ mapView: GMSMapView) {
        // map ready to use
 }