小编Kev*_*vin的帖子

按国家/地区过滤Google商家信息自动填充结果

我正在开发一个Android应用程序,我希望用户在特定的城市中搜索数据(我的应用程序提供的数据).为此,我有一个搜索字段,用户可以在其中键入城市名称.我使用Google Places API检索自动填充结果,如下所示:


    PendingResult results =? Places.GeoDataApi?.getAutocompletePredictions(mGoogleApiClient, searchQuery,? mBounds, mPlaceFilter);

在我看来,mBounds代表德国的界限,因为我只对德国的城市感兴趣,我不希望其他国家的城市出现在自动完成预测中.现在,显然德国不是一个完美的广场,所以mBounds包含整个德国,但也包括像瑞士这样的周边国家的一部分.所以问题是:如何删除不在德国的地方的所有自动填充预测?

我的第一个想法是使用场所过滤器来首先只获得一个国家的预测.根据文档,这确实可以用于按地区(例如按国家/地区)进行过滤,但遗憾的是,Google Places API for Android(根据文档)不支持此特定过滤.

Google Places API for Android不支持(地区)类型集合.

似乎也没有任何可能从AutocompletePredictionPlace对象获取Place的国家/ 地区.所以我甚至不能自己做过滤.

我能想到的唯一解决方案如下:

  1. 获取地点从预测和使用地理编码API来获取地址,并从获得国家和做的过滤.然而,这是一个额外的网络呼叫(另一个违反我的配额)似乎完全没有必要,因为在我看来,AutocompletePrediction对象或至少Place对象应该知道一个地方在哪个国家.毕竟,它是这些对象的description/toString结果的一部分.然而,这只是一个像"慕尼黑,德国"的字符串.

  2. 使用1.中提到的描述字符串来确定国家/地区.然而,这似乎是比1更糟糕的解决方案,因为描述是根据用户的区域设置进行本地化的,这可能是一切.所以只是寻找"德国"不会做这个工作.

我希望得到一个比我迄今为止提出的解决方案更好的解决方案.我无法想象没有更好的方法来做到这一点.有任何想法吗?

android google-places-api google-play-services

14
推荐指数
1
解决办法
1792
查看次数