我通过Places.GeoDataApi.getAutocompletePredictions()使用GoogleApiClient和Places API来获取地址/地点自动填充建议(https://developers.google.com/places/android/autocomplete)。该方法需要一个GoogleApiClient对象,一个String来自动完成,一个LatLngBounds对象来限制搜索范围。这就是我的用法:
PendingResult<AutocompletePredictionBuffer> results =
Places.GeoDataApi.getAutocompletePredictions(googleApiClient, constraint.toString(), bounds, filter);
根据文档,bounds参数是必需的。但是,当我查看网络服务版本(https://developers.google.com/places/webservice/autocomplete#location_biasing)时,我发现可以使用更多参数,包括位置偏差的位置和半径。
是否可以为getAutocompletePredictions()方法执行相同的操作,或者我是否必须编写自己的代码来访问Web服务,提供api密钥并解析响应?使用GeoDataApi似乎很方便,因为它处理了很多这些细节,但我还没有找到一种很好的方法来以一种聪明的方式轻松限制其搜索范围。看起来这是一个相当常见的场景,所以必须有一些广泛接受的模式或解决方案,我还没有找到。
答案 0 :(得分:1)
GeoDataApi
目前确实有点受限。如果您选择不在Google Play服务之外,可以查看Sprockets for Android库(我是开发人员),它为Google Places API提供完整的Java界面(请参阅Sprockets for Java )。链接还包括GooglePlaceAutoComplete小部件,GooglePlacesLoader和GooglePlacesAdapter,以防这些可能对您有用。