我想获得特定国家/地区的搜索结果。我曾试图设置纬度和经度,但它可能包括其他国家'结果靠近所需的国家!
我看到其他问题建议在请求网址中传递&components=country:COUNTRY_NAME
(我已经看过here)。但我想通过Google Places API传递请求。
我使用以下方法:
Places.GeoDataApi.getAutocompletePredictions(mGoogleApiClient, constraint.toString(),mBounds,mPlaceFilter);
但我找不到任何方法可以通过国名来获取特定国家/地区的结果。 (我已经尝试在请求URL中传递国家/地区名称,但它正在运行。)但是如何使用Places.GeoDataApi.getAutocompletePredictions()
方法实现相同的目标?
或者,如果没有在请求网址中发送国家/地区名称,还有其他方法可以实现此目的吗?
答案 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 Place Types的官方指南。
如果你想实现这个,
使用纬度和经度指定的国家/地区特定区域的LatLng界限来限制结果。
您还可以使用Google商家信息Web Service。
示例:通过网络服务限制您的国家/地区,显示印度国家/地区的结果。
注意: 如果您要将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)
有两种方法可以做到这一点。
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