2013-05-04 46 views
1

我有一個SherlockFragmentActivity顯示GoogleMap使用Google Maps Android API v2。我希望地圖在片段啓動後立即放大到當前位置。在documentation中我找不到這樣的方法。如何實現這一目標?將谷歌地圖放大到我的位置

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 2013-05-04 19:26:51

1

除非你已經知道你的位置,那是不可能的,因爲這將需要一段時間才能找到位置。

setMyLocationEnabled(true)僅允許用戶選擇將地圖居中/放大其位置。如果您想自己強制使用,則必須使用LocationManager自己找到位置,並相應地設置相機位置。或者將兩者結合起來,就像我在this sample project中那樣。但是,這又需要一些時間。

+0

我已經知道位置,我只是刪除了一些行。你的代碼很有幫助。我會檢查出來的。謝謝。 – iTurki 2013-05-04 19:29:00