在Google Places Android API中限制自动填充search到特定的国家/地区

我的目标是将Google Places Android API的自动填充结果仅限于特定的国家/地区(美国)。

我正在使用以下API:

PendingResult<AutocompletePredictionBuffer> results = Places.GeoDataApi .getAutocompletePredictions(mGoogleApiClient, constraint.toString(), mBounds, mPlaceFilter); 

看起来像LatLngBounds应该做这个工作。

  1. 如果是,那么LatLngBounds对于美国的价值是什么?

  2. 您使用哪个来源获取LatLngBounds的国家?

  3. LatLngBounds是一个矩形 – 所以它可以包含其他国家的结果。 那个怎么样?

  4. 有没有更好的方法来做到这一点?

Solutions Collecting From Web of "在Google Places Android API中限制自动填充search到特定的国家/地区"

从Google Play服务v9.6开始,您现在可以将国家/地区filter设置为自动填充build议。 请确保您的Play服务版本至less为v9.6

 AutocompleteFilter autocompleteFilter = new AutocompleteFilter.Builder() .setTypeFilter(Place.TYPE_COUNTRY) .setCountry("US") .build(); Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN) .setFilter(autocompleteFilter) .build(this); 

您可以使用ISO“Aplha 2”代码更改国家/地区代码

如果你正在使用PlaceAutocompleteFragment,你可以像这样设置它:

 AutocompleteFilter autocompleteFilter = new AutocompleteFilter.Builder() .setTypeFilter(Place.TYPE_COUNTRY) .setCountry("US") .build(); mAutocompleteFragment.setFilter(autocompleteFilter); 

LatLngBounds构造函数的方法定义如下所示:

 LatLngBounds (LatLng southwest, LatLng northeast) 

即边界的西南位置需要两个LatLng值,边界的东北位置需要两个LatLng值,矩形的另外两个点是平凡的。

 If yes, then what are the values of LatLngBounds for United States? 

我粗略猜测,如果我没有错,西南LatLng值将是32.6393,-117.004304和东北LatLng值将为44.901184,-67.32254美国。

 Which source did you use to get LatLngBounds for a country? 

我通常使用http://www.findlatitude和longitude.com/通过将标记放在所需的位置来检查这些LatLng值&#x3002;

 LatLngBounds is a rectange - so it can include other countries in the result as well. What about that? 

是的,你是正确的,上面的界限将是纯粹的矩形,并且不可能使用这些界限将结果限制在美国。
这是因为使用我们提供给constructer的两个Latlng点[SE&NW]来计算矩形[bounds],其他两个点将被平均计算。

 Is there a better way to do it? 

是的,您可以改用Google Places Web Service API。下面的教程介绍了如何使用API​​ ..
http://codetheory.in/google-place-api-autocomplete-service-in-android-application/

您可以使用地址types和地址组件以您希望的方式使用此API来限制结果: https : //developers.google.com/maps/documentation/geocoding/intro#Types

您可以使用链接中提到的types按国家,地区和其他各种types进行限制。

希望能帮助到你!!

PS:如果有人能够回答如何限制在特定的国家使用Play服务API的界限,那将是非常棒的!