我试图计算使用Google在iOS应用程序中加载和显示iOS的成本。
根据官方文件,StreetView每1000 StreetView收费14美元,最高可达100 000美元,比它高出11.2美元(批量折扣超过500 K)。这里是来源。
它特别指出:
全景对象的实例化发生在iOS和GMSPanoramaView对象上。
对我来说,因为英语不是我的母语,我所知道的实例化概念也不清楚这意味着什么。关键是,正式文档提供了几个方法(参见这里 )来移动位置,并在创建GMSPanoramaView对象之后更改其显示的全景图。文档明确指出的唯一一件事是,通过双击或点击导航箭头移动到附近的全景是不收费的。
关于账单,我试图了解这两种方法中的哪一种适用于:
let panoView = GMSPanoramaView(frame: .zero))时都要收取固定费用,一旦创建,将全景图移动到不同的区域并通过调用moveNearCoordinate()方法来显示它是免费的(如果处理得当,基本上每个应用程序的启动收费为0.014美元);moveNearCoordinate()方法-因此,每次更改GMSPanoramaView的panoramaID属性时。当一个家伙告诉我,在他的应用程序(使用Android )中,每次移动全景图时,他都会收到账单,我几乎可以肯定这是真的。
当然,如果我问这个问题,是因为我还不能独自测试它。有人能对账单的工作方式发号施令吗?
编辑:我发现Google提供了一些免费学分,我很快就建立了一个项目来测试它。
该项目的建造方式如下:
ViewController传递的.zero的类变量,frame给出警告:
私有let streetView: GMSPanoramaView ={ let pano =GMSPanoramaView(帧: CGRect(x: 0,y: 0,宽度: 1,高度:1) pano.camera =GMSPanoramaCamera(标题: 0,音调: 0,缩放: 0)返回pano }()viewDidLoad()中:
view.addSubview(streetView) streetView.move(toPanoramaID:"random_pano_id")viewDidLayoutSubviews()中的VC视图,因此全屏;UIButton,每次按下它都会通过调用streetView.move(toPanoramaID: newID)来移动全景图。newID是一个字符串变量,它假定12个有效的、硬编码的街道视图ID中有一个值。这个过程是连续的,从第一个ID到第十二个,所以没有显示重复的全景图。显然,每4-6小时报告一次请求,所以我可以进行三次测试。我试着在我的iPhone上启动这个应用程序,加载所有12个panos (+最初的一个)而不退出这个应用程序,然后强制退出每个测试。在这里,每个测试的结果如下:
这有点令人困惑,正如我所预期的那样,无论是1次请求还是13次请求计费。无论是Maps SDK有什么问题,我的GMSPanoramaView对象都以某种方式被释放和恢复了(这不太可能,因为全景图总是显示在屏幕上),或者还有另一个我无法想象的问题。
再一次,如果有人能澄清发生了什么,我很感激。此外,将实例化/成本降到最低的技巧也是非常感谢的。
发布于 2021-03-21 22:30:35
显然,我能够通过将GMSPanoramaView对象声明为static来减少请求的数量。尽管如此,我仍然不清楚为什么在大约50%的案件中,每一次使用我会被起诉两次请求。
https://stackoverflow.com/questions/66607639
复制相似问题