【问题标题】:How to get search autocomplete in Google Places API for Android only by specific region type (country, sublocality etc.)?如何仅按特定区域类型(国家、地区等)在适用于 Android 的 Google Places API 中获取搜索自动完成功能?
【发布时间】:2017-03-27 12:59:08
【问题描述】:

我正在尝试通过适用于 Android 的 Google Places API 在我的 Android 应用中创建自动完成搜索。主要目标是仅按 cities 和 administrative_area_level_1 进行搜索,但不幸的是我找不到创建这样的AutocompleteFilter 的方法。也许有人有同样的问题?

我正在使用 Play Services 版本。 9.8.0

【问题讨论】:

  • 请关注https://developers.google.com/places/android-api/autocomplete。该文档中提到了国家/地区和位置过滤器。
  • @Danieboy 我尝试使用 new AutocompleteFilter.Builder() .setFilterType(Place.TYPE_ADMINISTRATIVE_AREA_LEVEL_1) .build();但它不会改变结果
  • @Kunu 我不需要从特定国家获得结果,因为 new AutocompleteFilter.Builder() .setCountry("UA") .build();我想找到从 Places API 中获取仅选定区域类型的可能性,例如国家、地区或行政区域级别_1

标签: android autocomplete google-places-api


【解决方案1】:
 StringBuilder sb = new StringBuilder(PLACES_API_BASE + TYPE_AUTOCOMPLETE + OUT_JSON);
        sb.append("?key=" + API_KEY);
        sb.append("&components=country:IN");
        sb.append("&input=" + URLEncoder.encode(input, "utf8"));

【讨论】:

    【解决方案2】:

    不幸的是,没有一个过滤器可以完全满足您的需求。 AutocompleteFilter 允许您指定 TYPE_FILTER_REGIONS 或 TYPE_FILTER_CITIES 但它们不能组合在一个过滤器中。此外,TYPE_FILTER_REGIONS 可以返回 administrative_area_level_1 以外的内容。

    一种解决方案可能是使用两个不同的过滤器设置并行发出两个自动完成请求,然后合并结果。

    【讨论】:

    • 谢谢!我明白。但是如果我结合这两个过滤器,我会收到很多“浪费”数据(其他不需要的区域类型),我无法用我的目标数据替换这些数据。
    猜你喜欢
    • 1970-01-01
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2017-08-28
    • 1970-01-01
    相关资源
    最近更新 更多