2010-07-26 98 views
0

我正在研究编写一个Android应用程序,该应用程序具有大约2000个经度和纬度的数据库,这些数据库都经过有效硬编码。如何在Android设备上存储大量经度/纬度

我假设一旦我的应用程序被安装,我可以把这些信息放入SQLite数据库中,但是如何在应用程序下载时分发这些信息?

我想到的一个选择是某种Patricia Trie最小化数据的大小(点将在许多集群中,而不是均匀分布),但我不确定这样的集合是否会当存在两个相关联的号码时工作,以及可能的一些其他信息,例如地名。

有没有人有任何想法,输入或建议?

Rich

回答

0

2000 ints并不多。

事实上,我最近试图加载我的网页应用程序,它具有相似的纬度数字。我意识到我需要优化一点,但它的加载时间并不完全可怕。

您可能想要在任何特定时刻请求所需的数据。必须有一些与经纬度相关的其他数据可以帮助您...或者您应该只在地图中心的每个方向上显示纬度的某个边界内的针,例如+ 1,-1或一些东西。

+0

是的,你是对的,它不是大量的数据。我承认我至少会喜欢梦想,将来我需要高效地存储大量数据,并希望在第一时间做到这一点:) – Rich 2010-07-27 07:00:44

+0

哦,我几乎忘了。在我的应用程序中,我将数据作为树存储在mysql中。那就是我对每个节点都有一个lft和rght值,然后可以用线程方式搜索它们。其中大部分是通过cakephp的树状行为来处理的。它基于神知道什么自动设置lft和rght,但它似乎工作得很好。 – Parris 2010-07-27 18:21:36

+0

还有一点需要注意......如果我要将这些数据重新调整到头顶,我会尝试使其成为四叉树,八叉树或某种二维或三维数据结构,具体取决于我要查找的数据。它结束成为一棵树,并且您可能需要以有趣的方式将数据保存到sql lite或mysql中,查找的速度确实可能更快,并且可能只有1个高度优化的查询。 – Parris 2010-07-27 19:42:47