Расчет приблизиться к своей месте
У меня есть 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 ответа:
Вот так
CameraPosition position = new CameraPosition.Builder() .target(new LatLng(Lat,Lon)) .zoom(zoom).build(); map.animateCamera(CameraUpdateFactory.newCameraPosition(position));
Если вы уже не знаете своего местоположения, это невозможно, так как потребуется время, чтобы найти его.
setMyLocationEnabled(true)
просто позволяет пользователю выбрать, чтобы центрировать / масштабировать карту на своем местоположении. Если вы хотите заставить его самостоятельно, вам придется найти местоположение самостоятельно с помощьюLocationManager
и установить положение камеры соответственно. Или объединить их, как я сделал в этом образце проекта. Но, опять же, это займет некоторое время.