gpt4 book ai didi

android - 按国家/地区过滤 Google 地方信息自动完成结果

转载 作者:可可西里 更新时间:2023-11-01 19:08:00 24 4
gpt4 key购买 nike

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


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

在我的例子中,mBounds 代表德国的边界,因为我只对德国的城市感兴趣,我不希望其他国家的城市出现在自动完成预测中。现在,显然德国不是一个完美的正方形,因此 mBounds 包含整个德国,但也包含瑞士等周边国家的部分地区。所以问题是:如何删除所有在德国的地方的自动完成预测?

我的第一个想法是首先使用地点过滤器仅获取一个国家/地区的预测。根据documentation这确实可以用于按地区(例如按国家/地区)进行过滤,但不幸的是,Google Places API for Android 不支持(根据文档)这种特定的过滤。

The (regions) type collection is not supported in Google Places API for Android.

似乎也没有任何可能获得 Place 的国家/地区来自 AutocompletePredictionPlace目的。所以我什至无法自己进行过滤。

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

  1. 获取 Place从预测中使用 Geocoder API检索 Address然后从那里得到国家并进行过滤。然而,这是一个额外的网络调用(和另一个对我的配额的调用)似乎完全没有必要,因为在我看来 AutocompletePrediction对象或至少 Place对象应该知道一个地方在哪个国家。毕竟,它是那些对象的 description/toString 结果的一部分。然而,这只是一个像“德国慕尼黑”这样的字符串。

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

如果有比我目前提出的更好的解决方案,我将不胜感激。我无法想象没有更好的方法来做到这一点。有什么想法吗?

最佳答案

我遇到了同样的问题,但没有找到一种方法来过滤特定的国家,所以我作为一个愚蠢的解决方法所做的是过滤结果,如果它在我的案例中包含国家名称“阿拉伯联合酋长国”

while (iterator.hasNext()) {
AutocompletePrediction prediction = iterator.next();
// Get the details of this prediction and copy it into a new PlaceAutocomplete object.

if(prediction.getDescription().contains("United Arab Emirates"))
resultList.add(new PlaceAutocomplete(prediction.getPlaceId(),
prediction.getDescription()));
}

关于android - 按国家/地区过滤 Google 地方信息自动完成结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31886213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com