varios studio setmylocationenabled marcadores google geolocalizacion example demos agregar android google-maps geolocation google-maps-android-api-2

android - studio - ¿Qué hace realmente map.setMyLocationEnabled(true)?



google maps api key android (1)

Estoy estableciendo:

map.setMyLocationEnabled(true)

Pero me pregunto qué es lo que realmente hace esto. Lo que yo sé:

  1. Aparece un botón para ubicarme en la esquina superior derecha del mapa.
  2. Aparece un icono azul en el mapa que representa mi ubicación actual

Aquí está mi preocupación. Estoy escribiendo una aplicación de ubicación, pero me preocupa la batería. En otra parte de mi aplicación (a través de las preferencias) configuro un LocationManager y escucho los eventos de ubicación para poder registrarlos. Pero parte de mis preferencias es la precisión con la que recibo las actualizaciones y el intervalo.

Cuando apago mi LocationManager:

locationManange.removeUpdates(LocationListener listener);

Espero desactivar los servicios de ubicación para toda la aplicación. Sin embargo, aún veo el pequeño ícono de GPS en la barra de encabezado de mi teléfono que indica que la aplicación está recibiendo actualizaciones de ubicación. Sé que esto se debe al hecho de que lo puse en mi vista de mapa:

map.setMyLocationEnabled(true);

Originalmente pensé que si no escuchaba las actualizaciones de la ubicación mediante la configuración de un LocationManager que configuraba map.setMyLocationEnabled (verdadero) no tendría ningún efecto (es decir, no tendría el icono o el botón de mi ubicación). Sin embargo eso no es cierto.

¿Eso significa que al llamar a map.setMyLocationEnabled (true) google está configurando su propio LocationManager con su propia configuración? Realmente me gustaría llamar a map.setMyLocationEnabled (true), pero tengo que usar mi configuración para las actualizaciones de ubicación, no lo que sea que Google esté haciendo bajo el capó. ¿Es eso posible? ¿Me perdí algo en la documentación? No puedo encontrar nada sobre la precisión o el intervalo que se configura en un LocationManager cuando llamo a map.setMyLocationEnabled (verdadero).


¿Eso significa que al llamar a map.setMyLocationEnabled (true) google está configurando su propio LocationManager con su propia configuración?

No exactamente. Maps V2 usa LocationClient por defecto.

Realmente me gustaría llamar a map.setMyLocationEnabled (true), pero tengo que usar mi configuración para las actualizaciones de ubicación, no lo que sea que Google esté haciendo bajo el capó. ¿Es eso posible?

Puede usar setLocationSource() para suministrar sus propios datos de ubicación para usar con la capa my-location. Aquí hay un proyecto de muestra que demuestra esto.