为Android的地方自动填充API创建地方类型过滤器

Asi*_*sim 3 android autocomplete google-places-api

这个API似乎相当新,因此这里没有太多关于它的问题,也没有很多教程.

我按照谷歌的教程,在我的应用程序中使用了Autocomplete Android api.我现在正尝试使用AutocompleteFilter将结果限制在某个区域或某些类型的地方.

对于像我这样的初学者来说,似乎没有什么文档可以解释做什么.

AutocompleteFilter需要Collection对象.如何将以下值更改为整数?

https://developers.google.com/places/supported_types#table3

Asi*_*sim 6

问题是由我通过我们的 Maps for Work 支持门户联系到的一位 Google 员工自己解决的。

这是带有整数对应项的位置类型列表。

https://developers.google.com/android/reference/com/google/android/gms/location/places/Place

这些可用于过滤 Android Place Autocomplete API。


cip*_*ian 6

我还不能评论所以我在这里添加一个警告,上面的答案:

并非所有来自Place的常量都可用于使用AutocompleteFilter进行过滤,Android上只有两个可用:Place.TYPE_GEOCODEPlace.TYPE_ESTABLISHMENT('地址'出现在文档中但不是常量Place)

如果使用任何其他常量(例如Place.TYPE_LOCALITY),请求将导致此混乱状态错误:

Status{statusCode=NETWORK_ERROR, resolution=null}  
Run Code Online (Sandbox Code Playgroud)


raz*_*zdi 5

根据您的要求,AutocompleteFilter可以构建一个。该过滤器可随后被施加到IntentBuilder使用setFilter()

例如:

  1. 如果您想将结果限制在特定的国家/地区,可以通过以下方法实现:

    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().setCountry("IN").build();
    
    Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN).setFilter(typeFilter).build(this);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果要将结果限制为特定的地点类型,可以通过以下类似方式将“过滤器”更改为:

    AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().setTypeFilter(AutocompleteFilter.TYPE_FILTER_REGIONS).build();
    
    Run Code Online (Sandbox Code Playgroud)

  • 有一个可用的选项。您必须使用构建器模式。您可以在此处参考文档:[link](https://developers.google.com/android/reference/com/google/android/gms/location/places/AutocompleteFilter.Builder) (2认同)