gpt4 book ai didi

sql - Spatialite SQL 查询以查找给定纬度/经度的最近节点

转载 作者:行者123 更新时间:2023-11-29 13:48:34 26 4
gpt4 key购买 nike

我想找到距离给定坐标最近的节点。我检查了这个 https://gis.stackexchange.com/questions/186783/how-to-get-the-long-lat-information-from-a-nodeid-and-vice-versa但是,他的回答不起作用。

我的查询:

SELECT PID, 
min (DISTANCE(Startpoint(geometry), MakePoint(-79.417589, 43.266571)))
FROM test1f

没有synax错误,但无论点是什么,它总是返回数据库中的第一条记录以及到它的距离。

我也试过这个查询

SELECT PID, 
DISTANCE(Startpoint(geometry), MakePoint(-79.917589, 43.266571))
FROM test1f ORDER BY DISTANCE(Startpoint(geometry), MakePoint(-79.917589, 43.266571))

我得到了 50000 个结果,第一个就是我想要的。我怎么只能得到第一个?

最佳答案

您的第一个查询看起来是正确的。 (它与 first example here 本质上相同。)

无论如何,要仅返回第一个结果行,请添加 LIMIT 1到查询。

从 SpatiaLite 4.4.0 开始,您可以使用 KNN virtual table更有效地进行搜索:

SELECT test1f.PID,
knn.distance
FROM test1f
JOIN knn ON test1f.PID = knn.fid -- assuming PID is the INTEGER PRIMARY KEY
WHERE f_table_name = 'test1f'
AND ref_geometry = MakePoint(-79.417589, 43.266571)
AND max_items = 1;

关于sql - Spatialite SQL 查询以查找给定纬度/经度的最近节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44477807/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com