GMSAutocompleteViewController仅显示5个结果

时间:2019-04-12 04:02:08

标签: ios swift google-maps google-places

我在应用程序中集成了 GMSAutocompleteViewController

let autocompleteController = GMSAutocompleteViewController()
autocompleteController.delegate = self
let filter = GMSAutocompleteFilter()
filter.type = .address
autocompleteController.autocompleteFilter = filter

// Display the autocomplete view controller.
present(autocompleteController, animated: true, completion: nil)    

这始终只显示5个结果。此外,该行为似乎有点怪异。首先,当我在搜索中输入 J 时,将显示5个结果。编写了更多文本并将其删除以再次将搜索文本设置为 J 后,我得到-无法加载结果。然后除非重新启动我的应用程序,否则永远不会显示结果。
我使用AutocompleteSupportFragment在Android中尝试了相同的实现,并且效果很好。看到Ravi's answer之后,我还想知道其他几个。 但是如果启用计费是解决方案,为什么在不启用计费的情况下在Android上运行正常

2 个答案:

答案 0 :(得分:3)

我假设您已启用Google Places API,并且您在该项目的Google Developer Console下也没有应用程序限制。说有一个有关APIs and billing

的Google页面
  1. Android和iOS Places API可能有所不同,因此对于某些API,您可能需要启用计费功能:

      

    某些API允许免费使用,但要达到礼节性的使用限制,有些则允许   启用计费功能时,此免费限额会增加。

  2. 也许在您的Android应用中,您使用的是链接到已启用计费的项目的API,对于iOS应用,您使用的是与未启用计费的另一个项目相关的API。

      

    在项目级别(而不是API级别)启用结算。如果你   为一个项目启用计费,然后为该项目中的每个可计费API   是根据项目的使用情况计费的。项目中的所有用法是   使用您指定的付款方式进行结算,然后可以进行更改   随时采用其他方法。您无法选择性地启用   为某些API计费,但不为其他API计费当您启用   项目,它适用于您在该项目中使用的所有API,   即使当前已禁用该API。

也许与您在Android App Project中使用的Places SDK的版本有关,并且某些内部功能可能会影响您是否要使用其更新的API版本(需要启用或不启用结算功能)。为此假设检查Migrating to the New Places SDK Client中说明的信息。

最后,正如Google在Android版Places SDK,iOS版Places SDK,Places API中的许多文档中所述,它们在每篇文章的开头都带有红色警告,表示在每个项目中都应启用Billing。如果我所有的before语句均失败,则可能意味着它们在不同批次的用户/项目中应用了Billing和API功能限制的规则,因此您的android应用项目可能仍属于尚未推广到的批次启用“强制计费”选项。

答案 1 :(得分:0)

我遇到了类似的问题。试图实施Google的New Places API,以取代旧的SDK的Place Picker。每天打完一两次电话后,我总是开始出现以下错误:

  

发生错误:操作无法完成。操作方式   由于超出配额使用限制而失败。查看使用限制   指南(https://developers.google.com/places/ios-sdk/usage)   有关使用限制以及如何请求更高限制的信息。

我在控制台中启用了Places API,并且还启用了使用有效信用卡的帐单。仍然出现此错误。

解决方案是从Google Cloud Platform启用iOS版Maps SDK。之后,我对请求没有任何限制,并且每次都得到结果。希望能对某人有所帮助。