【发布时间】:2017-06-19 23:30:46
【问题描述】:
我为此苦苦挣扎了几天,我不知道为什么查询是错误的.. 我想在给定的纬度/经度上找到最近的点。
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))
结果很奇怪...结果是按距离排序的,而不是按距离排序的,我想这就是为什么它总是返回第一行。我的查询错了吗?或者,Spatialite 中存在错误?
谢谢]1
【问题讨论】:
-
您能否提供来自 SQLite 命令行工具的
.dump以作为minimal reproducible example 之类的适当定制玩具数据库? -
您在两个距离计算中都没有使用
StartPoint。但这确实看起来像一个错误。 -
SELECT rid, AsEWKT(Startpoint(geometry)), AsEWKT(geometry) LIMIT 5显示什么?您可以将其添加到问题中吗?
标签: mysql sqlite spatialite