Как сделать, чтобы моя карта Google увеличила масштаб до моего текущего местоположения?

Привет, я хочу, чтобы моя карта увеличилась в моем текущем местоположении. Это текущее местоположение определено в настоящее время, отправив lat и long в эмулятор. Как мне это сделать?

Моя текущая mapactivity.java

public class MapsActivity extends MapActivity { private MapView mapView; private MyLocationOverlay myLocOverlay; MapController mc; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mapactivity); initMap(); initMyLocation(); } /** * Initialise the map and adds the zoomcontrols to the LinearLayout. */ private void initMap() { mapView = (MapView) findViewById(R.id.mapView); View zoomView = mapView.getZoomControls(); LinearLayout myzoom = (LinearLayout) findViewById(R.id.zoom); myzoom.addView(zoomView); mapView.displayZoomControls(true); mapView.getController().setZoom(17); } /** * Initialises the MyLocationOverlay and adds it to the overlays of the map */ private void initMyLocation() { myLocOverlay = new MyLocationOverlay(this, mapView); myLocOverlay.enableMyLocation(); mapView.getOverlays().add(myLocOverlay); } @Override protected boolean isRouteDisplayed() { return false; } 

Спасибо.

    Вам необходимо реализовать onLocationChanged (). В моем коде я также добавил наложения. Как минимум вам нужно установить setCenter () с вашим текущим местоположением

     public void onLocationChanged(Location location) { List<Overlay> overlays = mapView.getOverlays(); myLocOverlay = new MyLocationOverlay(this, mapView); overlays.add(myLocOverlay); myLocOverlay.enableMyLocation();* // definitely need what's below int lat = (int) (location.getLatitude() * 1E6); int lng = (int) (location.getLongitude() * 1E6); GeoPoint point = new GeoPoint(lat, lng); mc.setCenter(point); mapView.invalidate(); } 

    Попробуйте добавить это в конце кода initMyLocation:

     controller = mapView.getController(); mMyLocOverlay.runOnFirstFix(new Runnable() { public void run() { controller.setZoom(17); controller.animateTo(mMyLocOverlay.getMyLocation()); } }); 

    Вы можете удалить эту строку из метода initMap:

     mapView.getController().setZoom(17); 

    дай мне знать, если это работает

    Ger

    Поскольку у вас уже есть данные о местоположении, вы можете создать объект / структуру LatLng и использовать эту строку непосредственно на объекте Map:

     map.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 15.0f)); 

    Я использую API Google Maps API v2

    Intereting Posts
    Отправка содержимого utf8 с помощью метода post на сервер в android с использованием HttpClient Обработка сенсорных событий – onInterceptTouchEvent и onTouchEvent В appcelerator / titanium mobile при использовании локального html в веб-представлении, как мне загрузить образ и ссылку в каталог данных приложения Как мне (вставить) элемент входа в RecyclerView? Dropbox api в android MQTT Security – как запретить пользователям, подписывающимся на темы? Как определить, отображается ли какой-либо системный диалог? Как включить сторонние библиотеки в пользовательский библиотечный модуль в android Ошибка Android Studio Commit & Push J2objc – разрешающие типы объектов Невозможно удалить виртуальное устройство из Eclipse, android Animate изменение ширины android RelativeLayout Можно ли получить данные PPG (Photoplethysmogram) с помощью интеллектуальных часов через Android? Как получить телефонный контакт без кода страны? Когда я отправляю SMS, иногда получается код = 0. Что означает этот код?