如何在Google Places API中获取适用于Android的AutocompletePredictions的国家/地区特定结果?

时间:2015-12-01 11:03:09

标签: android google-maps google-places-api

我想获得特定国家/地区的搜索结果。我曾试图设置纬度和经度,但它可能包括其他国家'结果靠近所需的国家!

我看到其他问题建议在请求网址中传递&components=country:COUNTRY_NAME(我已经看过here)。但我想通过Google Places API传递请求。

我使用以下方法:

  

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

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

或者,如果没有在请求网址中发送国家/地区名称,还有其他方法可以实现此目的吗?

4 个答案:

答案 0 :(得分:13)

AutocompleteFilter typeFilter = new AutocompleteFilter.Builder().
                    setTypeFilter(Place.TYPE_COUNTRY).setCountry("IN").build();

Intent intent = new PlaceAutocomplete.IntentBuilder(PlaceAutocomplete.MODE_FULLSCREEN)
                            .setFilter(typeFilter)
                            .build(this);

答案 1 :(得分:4)

  

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

     
      
  • 局部性
  •   
  • sublocality
  •   
  • POSTAL_CODE
  •   
  • 国家
  •   
  • administrative_area_level_1
  •   
  • administrative_area_level_2
  •   
     

Google Places API for Android.

不支持(地区)类型集合

参考:Google Place Types的官方指南。

如果你想实现这个,

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

  • 您还可以使用Google商家信息Web Service

示例:通过网络服务限制您的国家/地区,显示印度国家/地区的结果。

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

注意: 如果您要将country过滤器应用于Google Places API,遗憾的是您必须使用WebService,因为现在Android中没有可用的过滤器/方法API按国家/地区限制(不包括LatLng Bounds)。

答案 2 :(得分:2)

使用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);

答案 3 :(得分:0)

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

  1. 使用您所在国家/地区的latLng界限来限制结果。(但这将是矩形边界。因此限制将是近似的。)
  2. 2您应该使用Web服务API。它也适用于android。

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

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

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