从sqlite数据库中获取最近的坐标
get nearest coordinate from sqlite database
我有一个基于两个双精度值 x0,y0
的点坐标,两者都采用以下格式:xx.x(点作为小数点分隔符)
在数据库中,我有一个行列表,这些行由坐标 x1,y1
定义为起点,坐标 x2,y2
定义为终点。在数据库中的其他列(例如线宽等)中,有这些列:
id | x1 | y1 | x2 | y2
我需要的是 returns 任何一条线的星点 (x1,y1) 或端点 (x2,y2) 离我的基点 (x0,y0) 最近的查询。所以开始或结束最接近我当前位置的线。
谢谢
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
我有一个基于两个双精度值 x0,y0
的点坐标,两者都采用以下格式:xx.x(点作为小数点分隔符)
在数据库中,我有一个行列表,这些行由坐标 x1,y1
定义为起点,坐标 x2,y2
定义为终点。在数据库中的其他列(例如线宽等)中,有这些列:
id | x1 | y1 | x2 | y2
我需要的是 returns 任何一条线的星点 (x1,y1) 或端点 (x2,y2) 离我的基点 (x0,y0) 最近的查询。所以开始或结束最接近我当前位置的线。
谢谢
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