如何在Google Places API中获取针对Android自动完成预测的国家/地区特定结果?

我想获得特定国家的search结果。 我尝试设置经度和纬度,但可能包括其他国家的结果靠近所需的国家!

我已经看到其他问题,build议在请求URL(我已经在这里看到)通过&components=country:COUNTRY_NAME 。 但是我想通过Google Places API的请求。

我正在使用以下方法:

Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient,constraint.toString(),mBounds,mPlaceFilter);

但是我找不到任何可以通过国家名称来获得特定国家的结果的方法。 (我已经尝试通过请求URL中的国家名称,它正在工作。)但如何通过使用Places.GeoDataApi.getAutocompletePredictions()方法实现相同?

或者有没有其他的方式来实现这一点,而不需要在请求URL中发送国家/地区名称?

Solutions Collecting From Web of "如何在Google Places API中获取针对Android自动完成预测的国家/地区特定结果?"

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

(regions)types集合指示Places服务返回任何匹配以下types的结果:

  • 局部性
  • sublocality
  • 邮政编码
  • 国家
  • administrative_area_level_1
  • administrative_area_level_2

Android的Google Places API不支持(地区)types集合。

参考: Google Placetypes的官方指南。

如果你想实现这个,

  • 使用纬度和经度指定的国家特定区域的LatLng限制结果。

  • 您也可以使用Google Places Web服务 。

示例:通过Web服务限制您的国家,显示国家印度的结果。

url: https : //maps.googleapis.com/maps/api/place/autocomplete/json?key=AIzaSyCkvow9LlFNOywy8lzaekn-xROBZRsSFvU&input=a&types=(cities)&components= country: ind

注意: 如果您想要将Google countryfilter应用到Google Places API,不幸的是您必须使用WebService,因为Android API中没有可用的filter/方法来限制国家/地区(不包括LatLng界限)。

使用JavaScript,您可以使用下面的代码组件限制,尝试重写为Android:

 var options = { // bounds : boundsByCity, types: ["geocode"], componentRestrictions: { country: "IN" } }; //Create the search box and link it to the UI element var input = document.getElementById('pac-input'); var temp = new google.maps.places.Autocomplete(input, options); 

有两种方法可以做到这一点。

  1. 为你的国家使用latLng边界来限制结果(但是这将是矩形边界,所以限制是近似的)。

2您应该使用Web服务api。 它也适用于android。

http://codetheory.in/google-place-api-autocomplete-service-in-android-application/

您可以使用地址types和地址组件以您希望的方式使用此API来限制结果:

https://developers.google.com/maps/documentation/geocoding/intro#Types