Android – Guardar ubicación en la base de datos SQLite

Tengo problema con excepto la latitud y la longitud en la base de datos de SQLite. Puedo guardar una ubicación como (123.123999, 123.123999) y se guardará en la base de datos. Pero si quiero leerlo, obtengo una ubicación redondeada (123.124, 123.124).

Mi tabla creada por este segmento de sql:

CREATE TABLE locs(id INTEGER PRIMARY KEY AUTOINCREMENT, lat DOUBLE, lng DOUBLE, num INTEGER) 

Y los resultados de las consultas:

 SELECT * FROM locs WHERE lat = 123.124; //RETURN NO ROWS SELECT * FROM locs WHERE lat = 123.123999; //RETURN 1 ROW 

Así que no puedo usar los números que tengo para hacer consultas sobre los datos.

Creo que no soy el primero en manejar este problema, porque es lo básico. Pero no encontré ninguna respuesta que funcione en la base de datos SQLite.

¿Cómo puedo leer y escribir el número correcto en el db?

¿Cómo puedo leer y escribir el número correcto en el db?

Le sugiero una solución rápida.

Dado que sabes en qué formato estás almacenando tus coordenadas eq números por lo que no hay problema para almacenarlos como TEXT y luego recuperarlos como TEXT y simple realizar analizar de nuevo a DOUBLE si desea hacer algunas cosas con ellos.

 CREATE TABLE locs( id INTEGER PRIMARY KEY AUTOINCREMENT, lat TEXT, lng TEXT, num INTEGER ) 

Debe definir un epsilon alrededor del valor consultado, es decir,

 SELECT * FROM locs WHERE lat BETWEEN value-epsilon AND value+epsilon; 

Usted puede cambiar su epsilon según su necesidad. En el ejemplo que le dio 1e-3 debería ser suficiente.

Otra opción es redondear los valores cuando los insertas, pero luego perderás información que necesites en el futuro.

  • Intent.ACTION_PICK devuelve el cursor vacío para algunos contactos
  • Android.database.CursorWindowAllocationException: La asignación de ventana de cursor de 2048 kb falló incluso después de cerrar el cursor
  • NPE intermitente al insertar datos en SQLite
  • Recuperar el último registro en la tabla SQLite (de nuevo)
  • ¿Cómo puedo crear una base de datos en android?
  • ¿Cómo obtener el último registro de Sqlite?
  • ¿Cómo puedo simular una actualización de la aplicación?
  • ¿Es el contexto de la aplicación siempre el mismo sin importar la clase?
  • ¿Cómo obtener el recuento de filas de una consulta en Android usando SQLite?
  • Un comportamiento extraño para reguelr sqlite operación en android
  • Ordenar los datos de la base de datos y mostrarlos en la vista de lista
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.