PlacePicker.IntentBuilder搜索未本地化

时间:2017-05-23 09:53:47

标签: java android google-maps

我正在使用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);

以下是我的结果的屏幕截图:

enter image description here

2 个答案:

答案 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();
                    }
                }
            });
        }