Centro de aplicaciones de Google Maps V2 Ubicación actual en pantalla
Estoy tratando de lograr esta tarea simple, que parecía ser bastante sencillo, pero todavía no funciona como se supone que debe hacer. Estoy utilizando el método de abajo, pero el teléfono se amplía en el centro de la ciudad, a unos 2 km de donde mi punto de ubicación azul es.
public void setUpMap() { mGoogleMap.setMyLocationEnabled(true); String context = Context.LOCATION_SERVICE; LocationManager locationManager = (LocationManager)mContext.getSystemService(context); Criteria criteria = new Criteria(); String provider = locationManager.getBestProvider(criteria, true); Location myLocation = locationManager.getLastKnownLocation(provider); double latitude = myLocation.getLatitude(); double longitude = myLocation.getLongitude(); LatLng latLng = new LatLng(latitude, longitude); mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10)); }
He intentado fijar diversos valores del zumbido, pero nada cambia mucho. No estoy seguro de si debería configurar un nuevoLatLngBounds o no, ya que todo el mundo dice que este es el camino correcto. Parece que no estoy recibiendo mi ubicación actual, pero la ubicación de mi ciudad.
- MyLocationOverlay dispatchTap () no se propaga
- GetLastKnownLocation () devuelve siempre la misma ubicación
- ¿Cómo obtener la ubicación exacta actual en android sin conexión a Internet?
- Enviar extra a requestLocationUpdates intentService rompe las actualizaciones de ubicación
- CursorAdapter clasificación dinámica
- Android - ¿Cómo obtener el tiempo estimado de conducción de un lugar a otro?
- Google Selector de lugares no se está lanzando en teléfonos Android Mi
- Esperando hasta que la ubicación esté encendida después de encenderla a través de la alerta de servicios de ubicación
- cómo obtener longitud y latitud en android
- PendingIntents y Google Play Services - cómo hacer la limpieza
- ¿Hay ventajas de usar FusedLocationProviderApi sobre LocationManager?
- Servicios de ubicación de Google contra servicios de ubicación de Android
- Obtenga la ubicación (coordenadas) periódicamente sin aumentar drásticamente el consumo de la batería
Nueva Respuesta: –
mMap.setMyLocationEnabled(true); Location myLocation = mMap.getMyLocation(); if (myLocation != null) { mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( new LatLng(myLocation.getLatitude(), myLocation .getLongitude()), 14)); }
Esto viene un poco demasiado tarde, pero hay 2 maneras de hacerlo.
API de FusedLocation
Implementar la API de FusedLocation (consulte Cómo conocer la ubicación de la aplicación ), úsela para configurar una solicitud de ubicación y obtener una corrección de ubicación. Cuando obtiene el objeto Ubicación en la devolución de llamada, utilícelo para establecer la ubicación en el objeto GoogleMap.
@Override public void onLocationChanged(Location location) { mCurrentLocation = location; mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( new LatLng(location.getLatitude(), location.getLongitude()), 15)); }
OnMyLocationChangeListener
La clase GoogleMap tiene un OnMyLocationChangeListener, que puede implementar de la misma manera para una sola corrección:
mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() { @Override public void onMyLocationChange(Location location) { mMap.animateCamera(CameraUpdateFactory.newLatLngZoom( new LatLng(location.getLatitude(), location.getLongitude()), 15)); mMap.setOnMyLocationChangeListener(null); } });
El problema es que la interfaz está marcada como obsoleta y Google recomienda usar la API FusedLocation. Podría usarlo si realmente desea, pero tenga en cuenta los futuros cambios en la API que hacen inutilizable y romper su aplicación.
- Cordova Exec bloqueó el hilo principal incluso después del uso de CordovaInterface.getThreadPool ()
- Ocultar / Mostrar la barra de acciones más suavemente?