簡體   English   中英

Android-在SQLite數據庫中保存位置

[英]Android - Save location in SQLite database

我在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數據庫的答案。

如何在數據庫中讀寫正確的數字?

如何在數據庫中讀寫正確的數字?

我建議您一個快速的解決方案。

既然你什么格式你存儲你的坐標EQ號知道,所以沒有將其保存為問題TEXT ,然后檢索它們作為TEXT和簡單的執行解析回DOUBLE如果你想要做的一些東西與他們。

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

您應該圍繞查詢的值定義一個epsilon,即

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

您可以根據需要更改epsilon。 在示例中,您給出的1e-3應該足夠。

另一種選擇是在插入值時四舍五入,但是這樣一來,您將丟失可能需要的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM