Расчет приблизиться к своей месте


У меня есть SherlockFragmentActivity, который отображает GoogleMap с помощью Google Maps Android API v2. Я хочу, чтобы карта приблизилась к моему текущему местоположению, как только фрагмент запустится. Я не смог найти такой метод в документации . Как этого добиться?

private GoogleMap mMap;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.ui_settings_demo);
    setUpMapIfNeeded();
}

@Override
protected void onResume() {
    super.onResume();
    setUpMapIfNeeded();
}

private void setUpMapIfNeeded() {
    // Do a null check to confirm that we have not already instantiated the map.
    if (mMap == null) {
        // Try to obtain the map from the SupportMapFragment.
        mMap = ((SupportMapFragment) getSupportFragmentManager()
                .findFragmentById(R.id.map))
                .getMap();
        if (mMap != null) {
            setUpMap();
        }
    } 
}

private void setUpMap() {
    mMap.setMyLocationEnabled(true);
    //How to zoom to my current location?


}
2 2

2 ответа:

Вот так

CameraPosition position = new CameraPosition.Builder()
        .target(new LatLng(Lat,Lon))
        .zoom(zoom).build();

     map.animateCamera(CameraUpdateFactory.newCameraPosition(position));

Docs

Если вы уже не знаете своего местоположения, это невозможно, так как потребуется время, чтобы найти его.

setMyLocationEnabled(true) просто позволяет пользователю выбрать, чтобы центрировать / масштабировать карту на своем местоположении. Если вы хотите заставить его самостоятельно, вам придется найти местоположение самостоятельно с помощью LocationManager и установить положение камеры соответственно. Или объединить их, как я сделал в этом образце проекта. Но, опять же, это займет некоторое время.