gpt4 book ai didi

postgresql - 在 postgresql 中使用 POSTGIS 查找具有几何数据类型的 KNN

转载 作者:行者123 更新时间:2023-11-29 14:33:17 25 4
gpt4 key购买 nike

我想使用 PostGIS 在 postgresql 中找到 k 个最近的点以获得最佳性能。

我的表的结构是:


创建表 mylocations
(id 整数,
名称变量,
几何几何);

样本插入行是:


插入 mylocations 值
(5, '阿拉斯加', 'POINT(-172.7078 52.373)');

我可以使用以下查询通过 ST_Distance() 找到最近的点:


选择 ST_Distance(geography(geom), 'POINT(178.1375 51.6186)'::geometry) as distance,ST_AsText(geom),name, id
从我的位置
ORDER BY 距离限制 10;

但实际上我想找到它们而不用计算我的点与表中所有点的距离。事实上,我想找到具有最佳性能的最佳查询,因为我的表会有大量数据。我感谢你的想法

最佳答案

你错过了<->运算符 Returns the 2D distance between A and B .确保您的 geom类型和 SRID是一样的。

SELECT ST_Distance(geom, 
'POINT(178.1375 51.6186)'::geometry) as distance,
ST_AsText(geom),
name, id
FROM mylocations
ORDER BY geom <-> 'POINT(178.1375 51.6186)'::geometry limit 10

关于postgresql - 在 postgresql 中使用 POSTGIS 查找具有几何数据类型的 KNN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48475337/

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