swift 关于与GMSPanoramaView示例化相关的Google Maps SDK计费的问题

v9tzhpje  于 2023-06-21  发布在  Swift
关注(0)|答案(1)|浏览(93)

我试图计算出使用Google Maps SDK在iOS应用程序中加载和显示PanoramaView的成本。
根据官方文档,StreetView每1000示例化收取14美元,最高10万,超过10万则收取11.2美元(批量折扣超过50万)。Here源。
特别是,它指出:
全景对象的示例化发生在iOS上,具有GMSPanoramaView对象。
对我来说,因为英语不是我的母语,而且我所知道的示例化的概念,并不真正清楚这意味着什么。重点是官方文档提供了几种方法(见这里)来移动位置并在创建GMSPanoramaView对象后更改其显示的全景。文档中唯一明确指出的是,通过双击或点击导航箭头移动到附近的全景是不收费的。
所以关于计费,我试图理解这两个中的哪一个适用:
1.每次创建新的GMSPanoramaView时收取固定费用(例如,let panoView = GMSPanoramaView(frame: .zero)),并且,一旦创建,将全景移动到不同的区域并通过调用moveNearCoordinate()方法来显示它是免费的(基本上,如果处理得当,每次应用程序启动都要收取0.014美元);
1.固定成本也适用于moveNearCoordinate()方法-因此,每次改变GMSPanoramaViewpanoramaID属性时。
我几乎可以肯定,1。一个家伙告诉我,在他的应用程序(使用Android SDK)中,每次移动全景图时,他也会被计费。
当然,如果我问这个是因为我还不能自己测试它。有人能解释一下账单是如何运作的吗?

**编辑:**我发现谷歌提供了一些免费的学分,我很快就建立了一个项目来测试它。

本工程建设如下:

  • GMSPanoramaView对象被初始化为主ViewController的类变量-将.zero传递为frame会给出警告:
private let streetView: GMSPanoramaView = {
      let pano = GMSPanoramaView(frame: CGRect(x: 0, y: 0, width: 1, height: 1))
      pano.camera = GMSPanoramaCamera(heading: 0, pitch: 0, zoom: 0)
      return pano
  }()
  • viewDidLoad()中进行了额外的设置:
view.addSubview(streetView)
  streetView.move(toPanoramaID: "random_pano_id")
  • 帧被设置为等于viewDidLayoutSubviews()中的VC视图,所以全屏;
  • 在层次结构的顶部有一个UIButton,每次按下它都会通过调用streetView.move(toPanoramaID: newID)来移动全景。newID是一个字符串变量,它假定值为12个有效的硬编码街景ID中的一个。该过程是顺序的,从第一个ID到第十二个ID,因此不会显示重复的全景图。

显然,Google开发者控制台每4-6小时报告一次请求,所以我可以做三次测试。我试过在我的iPhone上启动应用程序,加载所有12个panos(+初始的一个)而不退出应用程序,然后强制退出每个测试的应用程序。以下是每个测试的结果:

  1. 4项请求已计费;
  2. 2个请求已计费;
  3. 2个请求计费,在此过程中我失去了一次连接。
    这有点令人困惑,因为我预计要么1或13个请求计费。要么是MapSDK出了问题,我的GMSPanoramaView对象被释放并重新示例化(这不太可能,因为全景总是显示在屏幕上),要么是另一个我想不出来的问题。
    再次,如果有人能澄清发生了什么,我很感激。此外,最大限度地减少示例化/成本的提示是超级赞赏。
bzzcjhmw

bzzcjhmw1#

显然,我能够通过将GMSPanoramaView对象声明为static来减少收费请求的数量。

相关问题