我正在使用PlacePicker.IntentBuilder
从地图中选择附近的地点。一切都按预期工作,但顶级搜索栏建议未本地化,例如
我住在沙特阿拉伯,当我写苹果时,它建议我在美国的所有苹果。如何使此搜索本地化。
任何帮助将不胜感激。
我的代码是:
PlacePicker.IntentBuilder builder = new PlacePicker.IntentBuilder();
LatLngBounds bounds = new LatLngBounds(new LatLng(
getLocation().getLatitude(), getLocation().getLongitude()),
new LatLng(getLocation().getLatitude(), getLocation().getLongitude()));
builder.setLatLngBounds(bounds);
startActivityForResult(builder.build(getActivity()),
PLACE_AUTOCOMPLETE_REQUEST_CODE);
以下是我的结果的屏幕截图:
答案 0 :(得分:0)
我记得你可以给一个区域来封装搜索区域。这是reference。
您需要使用setLatLngBounds
方法。
<强>更新强>
另外,请确保使用LatLngBound.Builder来获得更优雅的代码和优化区域,因为您的积分超过2。
祝你好运埃姆雷
答案 1 :(得分:0)
添加Lat Lang Bounds将设置地图的起始视口,同时返回该边界周围的位置:
public class PlacePickerActivity extends AppCompatActivity {
private static final int PLACE_PICKER_REQUEST = 1;
private TextView mName;
private TextView mAddress;
private TextView mAttributions;
private static final LatLngBounds BOUNDS_MOUNTAIN_VIEW = new LatLngBounds(
new LatLng(37.398160, -122.180831), new LatLng(37.430610, -121.972090));
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_place_picker);
mName = (TextView) findViewById(R.id.textView);
mAddress = (TextView) findViewById(R.id.textView2);
mAttributions = (TextView) findViewById(R.id.textView3);
Button pickerButton = (Button) findViewById(R.id.pickerButton);
pickerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
PlacePicker.IntentBuilder intentBuilder =
new PlacePicker.IntentBuilder();
intentBuilder.setLatLngBounds(BOUNDS_MOUNTAIN_VIEW);
Intent intent = intentBuilder.build(PlacePickerActivity.this);
startActivityForResult(intent, PLACE_PICKER_REQUEST);
} catch (GooglePlayServicesRepairableException
| GooglePlayServicesNotAvailableException e) {
e.printStackTrace();
}
}
});
}