2010-09-18 43 views
5

我想建立一个应用程序,它会根据您的位置为您提供最近的餐厅。我们将有一个数据库,其中包含与餐厅相对应的所有POI,并且我们将使用您的手机的GPS获取您的位置...什么是两维最近邻问题的好算法?

什么算法适合?我在哪里可以找到关于它的好文档?

感谢

回答

2

主要问题是您如何存储和搜索数据。如果您使用的是不支持空间索引的SQL数据库(比方说Android上的SQLite),请考虑将空间数据转换为线性Z-order曲线。算法很简单,我知道(好,写)this的实现。

+0

这真棒代码托马斯,起首! – 2011-10-10 20:50:07

+0

在大型数据库上执行最近邻居查询似乎并不是直接在android上执行的一件好事。首先,数据库服务器就是这样做的。 – 2013-09-02 10:30:03

+1

@Tim我同意Z-order对于大型数据库并不是那么好。顺便说一句,自从我在2010年回答以来,我实现了一个[R-Tree](http://h2database.com/html/mvstore.html#r_tree),它应该允许高效的最近邻居查询(一旦实现)和也应该在Android上工作。但它不使用SQLite。 – 2013-09-02 11:38:27