Hola.
Tras probar las librerías
GoogleMap,
LocationManager, y
FusedLocationProvider para calcular la ubicación geográfica del usuario, comento mis impresiones. Teniendo en cuenta que soy bastante neófito en B4A, estas no tienen por qué ser las más acertadas.
Para algo simple como determinar la ubicación de manera puntual, cualquiera de las dos primeras librerías es suficiente. Pero si se pretende algo más profundo, como ir obteniendo la ubicación durante todo el tiempo de ejecución de la App, o necesitar el que se pueda elegir la precisión de la ubicación (balanceado con el consumo de energía), la librería
FusedLocationProvider es la ideal. Aunque su uso es bastante más complejo, también permite una serie de posibilidades que las otras librerías no aportan.
Por ejemplo, se puede seleccionar cada cuánto tiempo queremos que nos informe de una nueva ubicación, la distancia mínima recorrida necesaria para que informe de la misma, o su precisión. Además nos informa de si los ajustes del móvil relativos a ubicación (GPS: on/off) entran en conflicto con la precisión que hemos ajustado en la librería. Estas son solo algunas de sus posibilidades.
Otras ventajas: Puede usarse de manera combinada la localización por GPS y por cobertura móvil y el proceso puede implementarse, al contrario que GoogleMap, dentro de un servicio. En el
mensaje #18 FusedLocationProvider se aporta un ejemplo de uso dentro de un servicio, que me ha resultado bastante práctico.
En el Blog
www.sgoliver.net hay un hilo (
Localización geográfica en Android (2)) que explica de manera sencilla algunas de las características de esta librería. Aunque el Blog, y por lo tanto el código que muestra, está dedicado a programación en lenguaje Android nativo, la teoría aportada en este hilo (entre otros) es igualmente válida para B4A.
Saludos.