从sqlite数据库获取最近的坐标

时间:2015-02-23 06:08:33

标签: sqlite coordinates distance

我有一个基于两个双值x0,y0的点坐标,格式为:xx.x(指向小数点分隔符)

在数据库中,我有一个由坐标x1,y1定义为起点,x2,y2定义为终点的行列表。在数据库中的其他列(例如线条粗细等)中,有以下列:

id | x1 | y1 | x2 | y2

我需要的是一个查询,它返回任何具有最接近我的基点(x0,y0)的starpoint(x1,y1)或端点(x2,y2)的行。所以开始或结束的线最接近我当前的位置。

谢谢

1 个答案:

答案 0 :(得分:1)

SQLite没有平方根函数,但是为了比较距离,我们也可以使用距离的平方:

SELECT *
FROM MyTable
ORDER BY min((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0),
             (x2-x0)*(x2-x0) + (y2-y0)*(y2-y0))
LIMIT 1