我在这方面挣扎了好几天,我不确定为什么查询错了.. 我想在给定的纬度/经度处找到最近的点。
SELECT rid,DISTANCE(geometry, MakePoint(-79.91759, 43.266571))
FROM room2f ORDER BY DISTANCE(Startpoint(geometry), MakePoint(-79.91759, 43.266571))limit 1
它始终返回第一行,无论我使用什么点。然后我尝试删除" limit1":
SELECT rid,DISTANCE(geometry, MakePoint(-79.91759, 43.266571))
FROM room2f ORDER BY DISTANCE(Startpoint(geometry), MakePoint(-79.91759, 43.266571))
结果非常奇怪......结果是通过rid而不是distance来排序,我认为这就是它总是返回第一行的原因。我的查询错了吗?或者,Spatialite中有一个错误?
感谢] 1
答案 0 :(得分:0)
在你的sql语句中,你可以比较不同的距离..
因此,您的结果也会有不同的顺序!
参见距离函数的参考: http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html#p13