Android 将PlaceFilter与PlaceDetectionApi一起使用
我尝试了以下代码Android 将PlaceFilter与PlaceDetectionApi一起使用,android,google-api,google-places-api,Android,Google Api,Google Places Api,我尝试了以下代码 ArrayList<String> filters = new ArrayList<>(); filters.add(Place.TYPE_ATM + ""); filters.add(Place.TYPE_BANK + ""); filters.add(Place.TYPE_BAR + ""); filters.add(Place.TYPE_BUS_STATION + ""); filters.add(P
ArrayList<String> filters = new ArrayList<>();
filters.add(Place.TYPE_ATM + "");
filters.add(Place.TYPE_BANK + "");
filters.add(Place.TYPE_BAR + "");
filters.add(Place.TYPE_BUS_STATION + "");
filters.add(Place.TYPE_DOCTOR + "");
filters.add(Place.TYPE_FOOD + "");
filters.add(Place.TYPE_ACCOUNTING + "");
filters.add(Place.TYPE_AIRPORT + "");
filters.add(Place.TYPE_RESTAURANT + "");
filters.add("restaurant");
filters.add("establishment");
filters.add(Place.TYPE_STORE + "");
PlaceFilter placeFilter = new PlaceFilter(false, filters);
PendingResult<PlaceLikelihoodBuffer> result = Places.PlaceDetectionApi
.getCurrentPlace(mGoogleApiClient, placeFilter);
result.setResultCallback(new ResultCallback<PlaceLikelihoodBuffer>() {
@Override
public void onResult(PlaceLikelihoodBuffer likelyPlaces) {
Log.v("App", "1. likelyPlaces.getCount() : " + likelyPlaces.getCount());
for (PlaceLikelihood placeLikelihood : likelyPlaces) {
for(int i : placeLikelihood.getPlace().getPlaceTypes()){
Log.i("App", String.format("Place '%s' with " +
"likelihood: %g "+"type : %d",
placeLikelihood.getPlace().getName(),
placeLikelihood.getLikelihood(), i));
}
}
likelyPlaces.release();
}
});
ArrayList过滤器=新的ArrayList();
filters.add(Place.TYPE_ATM+);
filters.add(Place.TYPE_BANK+“”);
filters.add(Place.TYPE_BAR+);
filters.add(Place.TYPE_BUS_STATION+);
filters.add(Place.TYPE_DOCTOR+);
过滤器。添加(Place.TYPE_FOOD+);
filters.add(Place.TYPE_ACCOUNTING+“”);
filters.add(Place.TYPE_AIRPORT+);
添加(Place.TYPE_RESTAURANT+“”);
过滤器。添加(“餐厅”);
过滤器。添加(“建立”);
filters.add(Place.TYPE_STORE+“”);
PlaceFilter PlaceFilter=新的PlaceFilter(false,filters);
Pendingreult结果=Places.PlaceDetectionApi
.getCurrentPlace(mgoogleapClient、placeFilter);
result.setResultCallback(新的ResultCallback(){
@凌驾
public void onResult(PlaceLikelihoodBuffer likelyPlaces){
Log.v(“App”,“1.likelyPlaces.getCount():”+likelyPlaces.getCount());
for(place可能性place可能性:likelyPlaces){
对于(int i:placelikelibility.getPlace().getPlaceTypes()){
Log.i(“应用”,String.format(“将“%s”放置在”+
“可能性:%g”+“类型:%d”,
place.getPlace().getName(),
placelikelization.getlikelization(),i));
}
}
likelyPlaces.release();
}
});
它将likelyPlaces.getCount()返回为0
但是如果我更改pendingreult result=Places.PlaceDetectionApi
.getCurrentPlace(mgoogleapClient、placeFilter)代码>至pendingreult结果=Places.PlaceDetectionApi
.getCurrentPlace(mgoogleapClient,空)代码>我可以通过PlaceType获得20个位置341013、38、79、88、7
所以我的问题是,我是否以错误的方式启动了PlaceFilter
,如果是的话
如何将PlaceFilter
与PlaceDetectionApi
一起使用
还有,我怎样才能得到所有地方的照片
任何帮助都是非常值得的 改用整数值。看看下面的链接
请尝试使用整数值。看看下面的链接
PlaceFilter构造函数接受位置ID而不是位置类型
PlaceFilter(布尔型,集合限制为PlaceId)
这意味着您不能使用PlaceDetectionApi按位置类型筛选位置。您只能将结果限制为传递给api调用的PlaceFilter中的给定位置ID。PlaceFilter构造函数接受位置ID而不是位置类型
PlaceFilter(布尔型,集合限制为PlaceId)
这意味着您不能使用PlaceDetectionApi按位置类型筛选位置。您只能将结果限制为传递给api调用的PlaceFilter中的给定位置ID。place.TYPE\u ATM
这只是整数值,其值为6
。请查看同一链接以了解更多详细信息。请尝试filters.add(String.valueOf(Place.TYPE_ATM))。PlaceFilter使用Parcelable,这可能会被误解。不是说它会工作,但值得一试。Place.TYPE\u ATM
这只是整数值,它的值是6
。请查看同一链接以了解更多详细信息。请尝试filters.add(String.valueOf(Place.TYPE_ATM))。PlaceFilter使用Parcelable,这可能会被误解。不说它会起作用,但值得一试。