Spanish Ayuda con GPS Example

Pablo Valenzuela

New Member
Licensed User
Hola chicos, soy nuevo en b4a y haciedo los ejemplos basicos que hay aqui al hacer el demo GPS https://www.b4x.com/android/forum/threads/gps-tutorial.6592/ lo compilo y ejecuto correctamente en dos Samsung Galaxy(S6 y A5) pero no me muestra informacion en Lat:, Lon:, Speed:, pero en satellites si me manda informacion, ya busque y rebusque que podria tener mal pero al parecer no hay nada al respecto.

Si alguien podria echarme la mano, si conocen algun caso similar se los agradeceria.

Gracias.
 

josejad

Expert
Licensed User
Longtime User
Supongo que si ves los satélites, la aplicación te solicita permisos al iniciar la primera vez y lo concedes, verdad?

Estás en interior? Para que el GPS te arroje una posición, debe tener cobertura.

Mete un Log en LocationChanged a ver si la Sub se está ejecutando (y por tanto te detecta una posición)

B4X:
Public Sub LocationChanged(Location1 As Location)
    Log(Location1.ConvertToMinutes(Location1.Latitude)) 'añade esta línea
    lblLat.Text = "Lat = " & Location1.ConvertToMinutes(Location1.Latitude)
    lblLon.Text = "Lon = " & Location1.ConvertToMinutes(Location1.Longitude)
    lblSpeed.Text = $"Speed = $1.2{Location1.Speed} m/s "$
End Sub
 

Pablo Valenzuela

New Member
Licensed User
Hola Jose, al parecer fue ignorancia mia al pensar que la localizacion la mandaria de inmediato tipo otras aplicacion(google maps, uber, etc) pero tarda al rededor de dos minutos para que envie las coordenadas de manera correcta y ya apartir de ahi funciona a la perfeccion, tal vez sea mi equipo de pruebas, aun asi quedo satisfecho con la opcion pues es lo que ocupaba.

Te agradezco tu pronta y atenta respuesta. Mil Gracias.
 

josejad

Expert
Licensed User
Longtime User
Hola Pablo:

El GPS necesita estar en el exterior y coger cobertura de al menos 3 satélites para ofrecer la posición.
Otros tipos de servicios suelen usar FuseLocationProvider, que puede coger la posición tanto del GPS, como del WIFI o de la red móvil, con lo cual suele ser más rápida y funcionar también en interior.

Me alegro de que te haya servido.
 

drgottjr

Expert
Licensed User
Longtime User
el gps suele tardar un par de minutos la primera
vez en un lugar "nuevo".
si haces caso, pasa lo mismo con google maps
cuando visitas una ciudad por primera vez;
parece que resuelva tu paredero casi de
inmediato, pero un minuto mas tarde, de repente,
te "encuentras" en otro lugar, no muy lejos, pero
diferente. esto se debe a que google se sirve de
tu servicio cellular or wifi para localizarte. mientras
tanto, el gps esta buscando los satelites. cuando
pueda calcular tu paredero, lo indica en el mapa.
ultimamente, la demora es corta debido a lo que
explico abajo.

en tu caso - con tu app - nada mas tienes el gps,
asi que tienes que esperar. si incluyes fusionlocation
en tu app, funcionaria iqual que google maps (pues
estarias usando las mismas herrimientas que google)

google mantiene una base de datos de wifis y de
las torres de servicio celular a
traves del mundo. hace mucho tiempo que
viene adquiriendola. para una aproximacion de tu
posicion, se sirve de tu direccion ip (con el servicio
celular) y de las ya conocidas coordinadas de
los wifis cercanos cuyas senales captura.

cada vez que alguien busca su posicion con google maps,
la app captura las senales de wifis y torres cercanos,
y las manda a google para mantener la base de datos.
imaginate la cantidad de posiciones que tiene, dado
el numero de aparatos android en funcion...

cuanto mas grande sea la base de datos, menos necesidad
tiene google del gps (al menos en las ciudades. en
la carretera, todavia depende de el. pero una vez
en ruta, el gps no pierde la senal)
 

Pablo Valenzuela

New Member
Licensed User
Muchas gracias por sus respuestas, la verdad es que es un mundo nuevo para mi programar bajo ambiente android, agradezco mucho una comunidad como esta tan atenta y con conocimiento del tema.

Gracias.
 
Top