Android – 在SQLite数据库中保存位置

我在SQLite数据库中保存纬度和经度有问题.我可以保存一些位置,如(123.123999,123.123999),它将保存在数据库中.

但如果我想阅读它,我会得到像(123.124,123.124)那样的圆形位置.

我的表由这个sql段创建:

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

并查询结果:

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

所以我不能用我得到的数字来查询数据.

我相信我不是第一个处理这个问题的人,因为这是基本的事情.但我没有找到任何适用于SQLite数据库的答案.

如何在db中读取和写入正确的数字?

最佳答案

How can I read and write the correct number in the db?

我建议你快速解决一个问题.

因为您知道以什么格式存储坐标e.q.因此将它们存储为TEXT然后将它们作为TEXT检索并简单地执行解析回到DOUBLE是没有问题的,如果你想要用它们做一些事情.

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