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

use*_*748 6 google-maps ios swift

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

我看到Apple的MKMapView有一个mapViewDidFinishLoadingMap委托.Google API中是否提供了类似的内容?

小智 6

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

-(void)mapViewDidFinishTileRendering:(GMSMapView *)mapView{
    //TAKE THE SCREENSHOT HERE
}
Run Code Online (Sandbox Code Playgroud)

另外,不要忘记设置委托.


小智 5

iOS SDK 有一个函数mapViewSnapshotReady你可以使用引用协议GMSMapViewDelegate

参考说明:

在地图稳定(已加载图块、渲染标签、相机空闲)并且已渲染叠加对象时调用。

 func mapViewSnapshotReady(_ mapView: GMSMapView) {
        // map ready to use
 }
Run Code Online (Sandbox Code Playgroud)


zta*_*tan 4

在Google Maps Javascript API中,您可以使用事件侦听器来处理各种UI事件,例如tilesloaded事件。

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