在一个代码中,我得到一个附近的所有地方,获取名字并列入清单,我必须做什么,我必须在哪里编写PlaceFilter以过滤Bar和restoraunts,thx。
代码:
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
.getCurrentPlace(mGoogleApiClient, null);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
@Override
public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
for (PlaceLikelihood placeLikelihood : likelyPlaces) {
Log.i(TAG, String.format("Place '%s' has likelihood: %g",
placeLikelihood.getPlace().getName(),
placeLikelihood.getLikelihood()));
listForAd.add(String.valueOf(placeLikelihood.getPlace().getName()));
}
adapter.notifyDataSetChanged();
likelyPlaces.release();
}
});
我尝试这样做,但没有工作
List<String> filterType = new ArrayList<String>();
filterType.add(String.valueOf(Place.TYPE_BAR));
PlaceFilter filter = new PlaceFilter(false,filterType);
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
.getCurrentPlace(mGoogleApiClient, filter);
答案 0 :(得分:0)
根据文档PlaceFilter仅限于PlaceIds而非Type。
public PlaceFilter (boolean requireOpenNow, Collection<String> restrictToPlaceIds)
restrictToPlaceIds此过滤器应允许的地点ID。如果 这是指定的,只有与给定ID相对应的地方 回。如果为null,则不会按地点ID进行过滤。
我认为尚不支持按地点类型过滤结果。
替代解决方案是:
选项1尝试使用AutocompleteFilter 检查此SO question如何使用它。 但AutocompleteFilter只支持少数类型。
选项2是使用Google Places API Web Service,它允许您查询各种类别的地点信息,例如:机构,重要的兴趣点,地理位置等。您可以通过邻近或文本字符串搜索位置。地方搜索会返回地点列表以及每个地点的摘要信息。
通过“附近搜索”,您可以搜索指定区域内的位置。您可以通过提供关键字或指定要搜索的地点类型来优化搜索请求。
它将结果限制为与指定类型匹配的位置。只能指定一种类型(如果提供了多种类型,则忽略第一个条目后面的所有类型)。 See the list of supported types.