【问题标题】:Efficient storage and retrieval of many location points for display in mapoverlay高效存储和检索许多位置点以在地图叠加中显示
【发布时间】:2012-08-18 01:57:38
【问题描述】:

目标

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

正在存储什么

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

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

到目前为止我做了什么

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

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

我的问题

我应该使用哪种索引方法。还是我必须采取其他方法?

【问题讨论】:

  • 您是否也在移动设备上进行数据收集和/或显示?还有为什么每 1/2 秒一个数据点会耗尽电池电量。
  • 我建议过一次。但这正是我的工作提供者想要的。我会努力说服他。反正。是的,显示也发生在移动设备上。所有这些都有效,只是它运行缓慢.. 太慢了
  • 也许首先我会对最慢的部分进行一些基准测试。检索或绘图。因为我刚刚意识到绘图也可能会变得很慢

标签: java android sqlite indexing


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 2012-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多