2013-05-04 22 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