Spanish (SOLUCIONADO) GPS LocationChanged

cas6678

Active Member
Licensed User
Longtime User
Hola. Estoy empezando un proyecto con el GPS y tengo un par de dudas con este evento.

Si miro location1.time cuando se produce del evento LocationChanged me sucede lo siguiente (ejemplo real):

1547809910442
1547809911442
1547809912442
1547809913442
1547809914442
1547809916000
1547809917000
1547809918000 y asi sucesivamente con incrementos de 1000 milisegundos.

Es decir, al principio me da el tiempo de la primera lectura y luego le incrementa un segundo exacto. Ademas a las pocas lecturas no solo incrementa un segundo exacto sino que lo hace siempre DESDE un segundo exacto.

La primera duda es si existe un limite en ese segundo que no se puede disminuir para hacer lecturas mas rapidas. Tengo seteado GPS1.Start(0, 0) con lo que entiendo que le estoy pidiendo las lecturas mas rapidas posibles.

La segunda duda es, si lo anterior no se puede cambiar, como puedo obtener una unica lectura en el momento que yo quiera y no en un segundo exacto cuando el evento me la entregue???

Saludos.
 

Descartex

Well-Known Member
Licensed User
Longtime User
Buenas!!!
Segun tengo entendido, eso depende del dispositivo... He probado en varios de los que tengo, y las diferencias varian de unos a otros... de 1000 a 700 y pico, a 1500... me da a mi que es la "sensibilidad" del trasto.
Curiosamente, cuanto mas caro es el aparato, menos tiempo da... :D
Un saludo.
 

cas6678

Active Member
Licensed User
Longtime User
Ya, me lo suponia. El hecho es que me resulto curioso que siempre intente cuadrar el segundo exacto. Empieza donde sea y a los 4 o 5 cambios ya esta en el segundo con 000 milisegundos.

El problema es que eso te impide tomar una posicion cuando tu quieras, solo tienes la que se tomo antes y la que se tomo despues. Estoy pensando en tomar el tiempo cuando quiera y extrapolar con posicion anterior y posterior.

Ire a buscar las caracteristicas de mi tablet a ver si veo el tiempo del GPS en algun lado como caracteristica.

Gracias.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola, otra opción es tenerlo parado y ponerlo en marcha cuando te interese, y esperar a que se produzca el evento, y así tendras la posición en ese momento.

Empleando el LocationManager (libreria LocationManager), cuando te interese coger las coordenadas, haces requestGPSLocation o un requestMobileLocation y esperas a que se produzca el evento LocationChanged
Cuando tengas los datos lo paras con stopMobileListening y stopGPSListening

Saludos
 

cas6678

Active Member
Licensed User
Longtime User
Lo estuve probando pero el problema que le veo es que tarda entre que se hace el request y sucede el changed. Lo otro de momento me funciona bien. Me quedo con la hora y hago una extrapolacion entre la locationchanged anterior y posterior en funcion de ese tiempo.

Gracias.
 
Top