ios - Google 全景(街景) View 不会在 iOS 上第二次加载

标签 ios swift google-maps

我有一个非常奇怪的错误,对于大多数坐标,GMSPanoramaView 第二次不起作用。 (女巫 GMSPanoramaView 每次都工作 有一个坐标)

By 不起作用,我的意思是它只是黑色 View ,我所做的就是这样:

streetView.moveNearCoordinate(coordinate)

我已经尝试设置委托(delegate),但没有收到任何错误(尽管我收到委托(delegate)调用,例如 panoramaView(_ view: GMSPanoramaView, didMoveTo panorama: GMSPanorama?)

知道为什么 GMSPanoramaView 有时有效有时无效吗?

最佳答案

鉴于 Google 对效率的痴迷,这种行为似乎是有目的的。

GMSPanoramaService 实际上拒绝在应用程序的同一生命周期内多次生成相同的 ID。 Google 希望您找到最有效的方式(针对您的特定用途)一次生成 ID 并保留它直到您绝对需要重新生成它(即应用程序的下一个生命周期)。

因此,像往常一样生成一个 ID,而不是仅仅将 GMSPanoramaView 移动到该 ID,将该 ID 存储在具有必要持久性的某个地方,以便下次初始化该 View Controller 时,默认为存储的属性——否则,生成它(第一次)。

关于ios - Google 全景(街景) View 不会在 iOS 上第二次加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45019503/

相关文章:

ios - 如何将 Controller 转换为特定协议(protocol)而不是 Swift 中的类?

ios - PageControl 将标记放置在我想要的位置 ios 9

swift - Swift 3 中的日期验证

javascript - 使用 Google Maps API 对 LatLong 进行地理编码返回未定义

ios - 是否有可能在全局队列上使用 dispatch_async 运行的 block 在主线程上执行?

ios - 使用 iCloud 恢复非续订订阅

c# - 隐藏和显示导航栏

javascript - 谷歌绘图库工具集的控制定位

iOS:谷歌地图 API - markerInfoWindow 与 markerInfoContents

ios - 如何停止处理手势