2013-05-04 4 views
1

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

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? 


} 

ответ

1

как этот

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

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

Docs

+0

Есть трюк. Благодаря! – iTurki

1

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

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

+0

Я уже знаю местоположение, я просто удалил несколько строк. Ваш код был полезен. Я проверю это. Благодарю. – iTurki

Смежные вопросы