我有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?
}
答案 0 :(得分:2)
CameraPosition position = new CameraPosition.Builder()
.target(new LatLng(Lat,Lon))
.zoom(zoom).build();
map.animateCamera(CameraUpdateFactory.newCameraPosition(position));
答案 1 :(得分:1)
除非您已经知道您的位置,否则无法找到您的位置,因为找到该位置需要时间。
setMyLocationEnabled(true)
仅允许用户选择在其位置上居中/缩放地图。如果您想自己强制使用,则必须使用LocationManager
自行查找位置并相应地设置摄像机位置。或者像我在this sample project中所做的那样将两者结合起来。但是,这将需要一些时间。