Spatialite找到给定纬度/经度的最近节点

时间:2017-06-19 23:30:46

标签: mysql sqlite spatialite

我在这方面挣扎了好几天,我不确定为什么查询错了.. 我想在给定的纬度/经度处找到最近的点。

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中有一个错误?

感谢![enter image description here] 1

1 个答案:

答案 0 :(得分:0)

在你的sql语句中,你可以比较不同的距离..

  1. 从您的几何图形到您的特定点(我知道它是从点到几何体的最短距离)。
  2. 从几何体的第一点到特定点。
  3. 因此,您的结果也会有不同的顺序!

    参见距离函数的参考: http://www.gaia-gis.it/gaia-sins/spatialite-sql-4.2.0.html#p13