gpt4 book ai didi

postgresql - PostGIS:从其他点查找一定半径内的点

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

我在 PostgreSQL/PostGIS 中有一个名为 trip 的表,其中包含两个几何列:source_geom (POINT) 和 destination_geom (POINT) 表示旅程的开始和结束位置。

我还有一个名为 business 的单独表,其中包含指示办公室位置的几何列 office_geom (POINT)。

我的目标是从 trip 表中选择目的地距离 任何办公地点 1000 米以内的记录。

我需要触发什么查询才能获得我需要的结果?

最佳答案

可以使用子查询或连接来完成。使用子查询的示例:

SELECT * FROM business 
WHERE EXISTS(
SELECT 1 FROM trip
WHERE ST_Distance_Sphere(trip.destination_geom, business.office_geom) < 1000
)

但是这个查询不会使用索引并且在大数据集上可能需要很长时间。如果需要,可以从 geometry 创建 geography 列,在地理列上创建空间索引,然后使用 ST_DWithin :

select * 
from business b
join trip t on ST_DWithin(trip.destination_geogr, business.office_geogr, 1000)

关于postgresql - PostGIS:从其他点查找一定半径内的点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814784/

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