我正在尝试使用Google Places API,我想将搜索过滤为仅限健身类型。
我正在使用https://developers.google.com/places/
中提供的代码public void onPickButtonClick(View v) {
// Construct an intent for the place picker
try {
PlacePicker.IntentBuilder intentBuilder =
new PlacePicker.IntentBuilder();
Intent intent = intentBuilder.build(this);
// Start the intent by requesting a result,
// identified by a request code.
startActivityForResult(intent, REQUEST_PLACE_PICKER);
} catch (GooglePlayServicesRepairableException e) {
// ...
} catch (GooglePlayServicesNotAvailableException e) {
// ...
}
}
@Override
protected void onActivityResult(int requestCode,
int resultCode, Intent data) {
if (requestCode == REQUEST_PLACE_PICKER
&& resultCode == Activity.RESULT_OK) {
// The user has selected a place. Extract the name and address.
final Place place = PlacePicker.getPlace(data, this);
final CharSequence name = place.getName();
final CharSequence address = place.getAddress();
String attributions = PlacePicker.getAttributions(data);
if (attributions == null) {
attributions = "";
}
mViewName.setText(name);
mViewAddress.setText(address);
mViewAttributions.setText(Html.fromHtml(attributions));
} else {
super.onActivityResult(requestCode, resultCode, data);
}
}
我试图做的是创建一个像下面这样的过滤器,然后以某种方式将它(placeFilter)添加到意图中。
PlacePicker.IntentBuilder intentBuilder = new PlacePicker.IntentBuilder();
PlaceFilter placeFilter;
ArrayList<String> restictToGyms = new ArrayList<>();
restictToGyms.add("44");
placeFilter = new PlaceFilter(false, restictToGyms);
intent.SOMEHOWADD(placeFilter);
Intent intent = intentBuilder.build(this);
但我不确定如何将此过滤器添加到意图中。事实上,我不确定这是否是正确的做法。任何指针将不胜感激。谢谢!
答案 0 :(得分:3)
我一直在寻找同样的事情。不幸的是,它似乎不可能 - PlaceFilter发生了ID,而不是类型。 PlaceFilter类是最终的,因此无法扩展(我讨厌API编写器最终完成类时,几乎从来没有理由这样做)。在结果返回后,您需要实际进行调用并通过循环进行过滤。
答案 1 :(得分:0)
请参阅此https://developer.android.com/reference/com/google/android/gms/location/places/Place.html
健身房是Place.TYPE_GYM