postgresql – PostGIS:从其他点查找特定半径范围内的点

postgresql – PostGIS:从其他点查找特定半径范围内的点,第1张

概述我在PostgreSQL / PostGIS中有一个名为’trip’的表,有两个几何列:’source_geom'(‘POINT’)和’destination_geom'(‘POINT’)表示旅程的起始和结束位置. 我还有一个名为’business’的独立表,其几何列’office_geom'(‘POINT’)表示办公室的位置. 我的目的是从“旅行”表中选择记录,其目的地距离任何办公地点不到100 我在Postgresql / PostGIS中有一个名为’trip’的表,有两个几何列:’source_geom'(‘POINT’)和’destination_geom'(‘POINT’)表示旅程的起始和结束位置.

我还有一个名为’business’的独立表,其几何列’office_geom'(‘POINT’)表示办公室的位置.

我的目的是从“旅行”表中选择记录,其目的地距离任何办公地点不到1000米.

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

解决方法 可以使用子查询或连接来完成.使用子查询的示例:

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

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

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

以上是内存溢出为你收集整理的postgresql – PostGIS:从其他点查找特定半径范围内的点全部内容,希望文章能够帮你解决postgresql – PostGIS:从其他点查找特定半径范围内的点所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/sjk/1162816.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存