2

目标

记录安卓手机当前位置的信号强度。然后将它们全部显示在地图上。

正在存储什么

android上的sqlite数据库中<longitude, latitude, value>形式的记录。我使用 ORMLite 作为抽象层来存储和检索数据。

在我正在制作的应用程序(记录)中,它会创造很多点。实际上每 500 毫秒我必须创建一个日志条目

到目前为止我所做的

我查询范围之间的经度和纬度的日志点。但这确实是低效的 O(n) (如果我错了,请纠正我)

在我正在制作(记录)的应用程序中,它将

我的问题

我应该使用什么索引方法。还是我必须采取另一种方法?

4

1 回答 1

0

我做过类似的事情。我每 5 分钟获取一次用户位置,但是当我获取位置时,我会在 1 分钟内每 500 毫秒捕获一次位置(我这样做是为了尝试获取最准确的位置)。这些位置存储在内存列表中。一分钟后,我通过降低准确性对它们进行排序,取出列表中的第一个并丢弃其余的。然后我从我的 SQLLite 数据库中检索最后一个位置并比较这两个位置 - 如果新位置与前一个位置相同(在 50 米的容差范围内),我丢弃了新位置;如果没有,则将其提交到数据库。我这样做是为了确保我得到最准确的读数,并确保我没有数百个要映射的位置,所有位置都在另一个之上。

于 2012-08-22T20:59:28.137 回答