返回postgis边界框内100英里范围内的所有点

时间:2017-08-26 22:24:32

标签: sql postgis

我还在学习postgis并需要一些帮助。我有2个桌子,城市和景点。我想要返回给定城市X英里范围内的所有景点。这些是我自己的表,所以我可以用最好的方式设置它们。现在,我的景点有一个geom POINT列,srid 4326是lat / lng。我的城市表有一个包含城市边界的geom BOUNDING BOX(POLYGON)列。我使用ST_MakeEnvelope来填充该列,也是4326.

我看过ST_Expand和ST_DWithin,但我似乎无法弄清楚如何搜索景点表并展开框,还会返回里程。

非常感谢任何指导!

1 个答案:

答案 0 :(得分:1)

  

我想返回给定城市X英里内的所有景点

ST_DWithin

很容易
SELECT *
FROM attractions AS a
JOIN cities AS c
WHERE ST_DWithin(c.geom::geography, a.geom::geography, X*1604);