android - 来自 Google Places API Android 的 PlaceFilter 地点类型

标签 android google-places-api

我想问一下如何从新的 google places api ( https://developers.google.com/places/android/start ) 获取具有过滤器类型(例如:购物中心、银行)的附近地点

这是我的代码(我已经在循环条件中添加了一些替代方案),但我想从 PlaceFilter 中过滤类型而不是在循环条件中。

PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
            .getCurrentPlace(mGoogleApiClient, null);
    result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
        @Override
        public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
            for (PlaceLikelihood placeLikelihood : likelyPlaces) {
                list = placeLikelihood.getPlace().getPlaceTypes();
                for(int i = 0; i < list.size(); i++)
                {
                    if(list.get(i) == Place.TYPE_SHOPPING_MALL) {
                        Log.i(TAG, String.format("Place '%s' has likelihood: %g",
                                placeLikelihood.getPlace().getName(),
                                placeLikelihood.getLikelihood()));
                    }
                }
            }
            likelyPlaces.release();
        }
    });

请帮忙,非常感谢

最佳答案

我认为你正在尝试做这样的事情。

     List<Integer> filters=new ArrayList<>();
     filters.add(Place.TYPE_ESTABLISHMENT); 
     AutocompleteFilter autocompleteFilter=AutocompleteFilter.create(filters);
     PendingResult<AutocompletePredictionBuffer> pendingResult=Places
         .GeoDataApi
         .getAutocompletePredictions(sGoogleApiClient,"delhi", rectangleLyon, autocompleteFilter);
 //rectangleLyon is LatLngBounds, to remove filters put autocompletefilter as null 
 // Second parameter(as String "delhi") is your search query
     AutocompletePredictionBuffer autocompletePredictionBuffer=pendingResult.await(10, TimeUnit.SECONDS);
     Status status=autocompletePredictionBuffer.getStatus();
     Iterator<AutocompletePrediction> iterator=autocompletePredictionBuffer.iterator();

        while (iterator.hasNext()){
            AutocompletePrediction autocompletePrediction=iterator.next();
            // do something
        }          

您可以使用

添加更多过滤器
filters.add(Place.<MORE FILTERS>); //example TYPE_AIRPORT

点击此处了解更多过滤器类型 https://developers.google.com/places/supported_types

关于android - 来自 Google Places API Android 的 PlaceFilter 地点类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29574649/

相关文章:

android - 获取圆中点的坐标

php - Google 地方信息和 cURL

android - 如何自定义回收站 View 的网格布局管理器?

android - 测试 Android 即时应用程序

javascript - 如何使用 ionic 4 动态添加带有谷歌地点的文本字段

android - 如何在 Android 中使用 Google Places Api Actions 存储邻近区域和地址?

java - 关于通过 Google Places 自动完成 API 创建代理 API 的建议

google-places-api - 来自 Google Places Api 的 Photo_reference

android - 如何找到从android中的Assets文件夹中读取的pdf的最后一页

android - Lua Service2Media 移动端