如何加载谷歌的Android将api放在你当前的位置

时间:2016-03-23 19:47:01

标签: android google-places-api

我开始学习地方api。我设法创建了一个活动,当您单击该按钮时,会使用地图呈现地点api位置选择器。我的问题是我可以用硬编码的LatLangBounds做到这一点,我想要的是当我渲染地图时要从我当前的位置开始。我使用map api完成了这个,但是对于这个地方api我很困惑。

private static final int PLACE_PICKER_REQUEST = 1;
private TextView mName;
private TextView mAddress;
private TextView mAttributions;
private static final LatLngBounds BOUNDS_HARD_CODED_LOCATION = 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);

    /**
     * not part of places api standard code to add back function to action bar
     */
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);

    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_HARD_CODED_LOCATION );
                Intent intent = intentBuilder.build(PlacePickerActivity.this);
                startActivityForResult(intent, PLACE_PICKER_REQUEST);

            } catch (GooglePlayServicesRepairableException
                    | GooglePlayServicesNotAvailableException e) {
                e.printStackTrace();
            }
        }
    });
}

1 个答案:

答案 0 :(得分:0)

首先,您可以使用Location Services获取当前位置。当您拥有该职位时,您可以使用地图API中的VisibleRegion方法获取相机地图的onCameraChange()。现在使用可见区域对象,您可以使用当前位置构建新的LatLngBounds并调用Places API