【发布时间】:2017-09-29 12:20:32
【问题描述】:
我在 java 中使用 SQLite 连接到数据库,在数据库中用户将传递一些数据,SQLite 将基于此返回一个包含 5 个结果的列表。
我无法找出一种使用两个变量来返回最接近匹配结果的代码方式
它自己的程序将使用经度和纬度在数据库中搜索最近的 5 个火车站,并将它们排序到最近的最远,我的问题是经度和纬度将通过 android 应用程序动态输入。所以我不能硬编码 Long 和 Lat
这是我当前的代码
SELECT Latitude, Longitude, StationName FROM stations WHERE Latitude like '51%' AND Longitude like '-3%' LIMIT 5
正如您所见,为了测试其余的代码,我使用了通配符和类似选项来让我看起来它正在工作,但这只会给我一个按字母顺序排列的所有火车站的完整列表,一个现实的lat 更像是 53.4198,离那个最近的火车站可能是 53.4183。
请帮忙
【问题讨论】:
-
对于这类事情,您最好使用 SQLite GIS 扩展 SpatiaLite 之类的东西。
-
有更好的方法可以做到这一点,例如stackoverflow.com/questions/25170175/…。如果距离较大,则需要使用更好的公式,并考虑地球的球形形状。